如何在Python中创建一个线性回归图,其中的分布曲线(例如,正态分布)表示X-Y轴上的频率?

5uzkadbs  于 2023-01-29  发布在  Python
关注(0)|答案(1)|浏览(119)

我试图用Python生成一个线性回归图,在X轴和Y轴上有额外的分布曲线,表示每个维度上的值的分布。

我知道如何创建线性图,但还没有找到一种方法来生成分布曲线,使其出现在Python中的轴上。

wtzytmuj

wtzytmuj1#

在matplotlib文档中有一个很好的部分,经过一些修改,你可以得到一些类似的东西:
https://matplotlib.org/stable/gallery/lines_bars_and_markers/scatter_hist.html#sphx-glr-gallery-lines-bars-and-markers-scatter-hist-py
我个人认为matplotlib的gridspec是一个很好的学习点,它允许控制图形的位置,从而允许更强的定制。

import numpy as np
import matplotlib.pyplot as plt

# Fixing random state for reproducibility
np.random.seed(19680801)

# some random data
x = np.random.randn(1000)
y = np.random.randn(1000)

def scatter_hist(x, y, ax, ax_histx, ax_histy):
    # no labels
    ax_histx.tick_params(axis="x", labelbottom=False)
    ax_histy.tick_params(axis="y", labelleft=False)

    # the scatter plot:
    ax.scatter(x, y)

    # now determine nice limits by hand:
    binwidth = 0.25
    xymax = max(np.max(np.abs(x)), np.max(np.abs(y)))
    lim = (int(xymax/binwidth) + 1) * binwidth

    bins = np.arange(-lim, lim + binwidth, binwidth)
    ax_histx.hist(x, bins=bins)
    ax_histy.hist(y, bins=bins, orientation='horizontal')

# Start with a square Figure.
fig = plt.figure(figsize=(6, 6))
# Add a gridspec with two rows and two columns and a ratio of 1 to 4 between
# the size of the marginal axes and the main axes in both directions.
# Also adjust the subplot parameters for a square plot.
gs = fig.add_gridspec(2, 2,  width_ratios=(4, 1), height_ratios=(1, 4),
                      left=0.1, right=0.9, bottom=0.1, top=0.9,
                      wspace=0.00, hspace=0.00)
# Create the Axes.
ax = fig.add_subplot(gs[1, 0])
ax_histx = fig.add_subplot(gs[0, 0], sharex=ax)
ax_histy = fig.add_subplot(gs[1, 1], sharey=ax)

# Remove Axis Lines
ax_histy.spines[['right', 'top', 'bottom']].set_visible(False)
ax_histx.spines[['right', 'top', 'left']].set_visible(False)

# Remove Ticks
ax_histy.set_xticks([])
ax_histx.set_yticks([])

# Draw the scatter plot and marginals.
scatter_hist(x, y, ax, ax_histx, ax_histy)

相关问题