繁体   English   中英

如何在 python matplotlib 中使用最适合的 plot 行

[英]how to plot line of best fit using loglog in python matplotlib

使用此代码:

x = np.array([1, 2, 7, 5, 8])
y = np.array([ 5, 4, 6, 7, 10 ])
x = np.log(x)
y = np.log(y)
m, b = np.polyfit(x, y, 1)
plt.plot(x, y, 'o')
plt.plot(x, m*x + b)

我可以使日志值的 plot 如下: 在此处输入图像描述

但我想让轴刻度为非对数值,所以我认为这会起作用:

x = np.array([1, 2, 7, 5, 8])
y = np.array([ 5, 4, 6, 7, 10 ])
m, b = np.polyfit(x, y, 1)
plt.loglog()
plt.plot(x, y, 'o')
plt.plot(x, m*x + b)

但我得到了这个:

在此处输入图像描述

如何在对数刻度中制作最佳拟合线,但使用非对数轴刻度?

如果我理解正确,您可以将xticks / yticks设置为xticklabels / yticklabels的指数:

x = np.log(x)
y = np.log(y)
m, b = np.polyfit(x, y, 1)

fig, ax = plt.subplots()
ax.plot(x, y, 'o')
ax.plot(x, m*x + b)

ax.set_xticklabels([f'{tick:.1f}' for tick in np.exp(ax.get_xticks())])
ax.set_yticklabels([f'{tick:.1f}' for tick in np.exp(ax.get_yticks())])

用 np.exp(ticks) 绘制输出

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM