我的挑战是在我已有的散点图上覆盖自定义线函数图,代码如下所示:

base_beta = results.params
X_plot = np.linspace(0,1,400)

g = sns.FacetGrid(data, size = 6)
g = g.map(plt.scatter, "usable_area", "price", edgecolor="w")

其中 base_beta 只是一个常数,然后是一个系数。基本上,我想覆盖一个绘制线条的函数 y = constant + coefficient * x
我试图用这个覆盖一条线,但它没有用。
g = g.map_dataframe(plt.plot, X_plot, X_plot*base_beta[1]+base_beta[0], 'r-')
plt.show()

当前的散点图如下所示:
python - 在散点图上叠加线函数 - seaborn-LMLPHP

谁能帮我这个?

--尝试 1
base_beta = results.params
X_plot = np.linspace(0,1,400)
Y_plot = base_beta [0] + base_beta[1]*X_plot

g = sns.FacetGrid(data, size = 6)
g = g.map(plt.scatter, "usable_area", "price", edgecolor="w")
plt.plot(X_plot, Y_plot, color='r')
plt.show()

导致相同的图形但没有线:
python - 在散点图上叠加线函数 - seaborn-LMLPHP

最佳答案

您只需调用 plt.plot 即可在数据上绘制一条线。

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

data = pd.DataFrame()
data['usable_area'] = 5*np.random.random(200)
data['price'] =  10*data['usable_area']+10*np.random.random(200)

X_plot = np.linspace(0, 7, 100)
Y_plot = 10*X_plot+5

g = sns.FacetGrid(data, size = 6)
g = g.map(plt.scatter, "usable_area", "price", edgecolor="w")
plt.plot(X_plot, Y_plot, color='r')
plt.show()

产生:

python - 在散点图上叠加线函数 - seaborn-LMLPHP

关于python - 在散点图上叠加线函数 - seaborn,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46598371/

10-12 20:10