【发布时间】:2020-08-27 08:43:34
【问题描述】:
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from scipy import stats
xx = np.load('./x.npy')
yy = np.load('./y.npy')
fig, ax = plt.subplots()
fig = plt.gcf()
fig.set_size_inches(16, 8)
labels = ['C1', 'C2']
colors = ['r', 'b']
for idx in range(2):
df = pd.DataFrame({'x': xx, 'y': yy[idx]})
ax.set(xlim=(np.min(df.x), np.max(df.x)),
ylim=(np.min(df.y), np.max(df.y)))
p = sns.regplot('x',
'y',
df,
scatter=False,
order=2,
ax=ax,
label=labels[idx],
color=colors[idx])
slope, intercept, r_value, p_value, std_err = stats.linregress(
x=p.get_lines()[0].get_xdata(),
y=p.get_lines()[0].get_ydata())
formula = str(slope) + ' x\N{SUPERSCRIPT TWO} ' + str(intercept)
print('formula: ', formula)
我正在尝试计算 sns.regplot 拟合线的斜率和截距,它给了我:
formula: 82.53958162912909 x² 130.19916935648575
formula: 82.53958162912909 x² 130.19916935648575
其中:
-
您可以看到该图是错误的,对于 x 值 6 ,我们预计 y 值在 600 左右。
-
两条线的斜率和截距相同。我们预计会有微小的差异。
你可以找到x,y文件here
【问题讨论】:
标签: python-3.x scipy seaborn