gpt4 book ai didi

python - 在对数对数刻度上使用 matplotlib 拟合曲线

转载 作者:太空狗 更新时间:2023-10-29 22:08:04 25 4
gpt4 key购买 nike

我在 python 中使用 loglog 函数绘制简单的二维图,如下所示:

plt.loglog(x,y,label='X vs Y');

X 和 Y 都是 n 大小的 float 列表。

我想在同一张图上画一条线。我试过 numpy.polyfit ,但我一事无成。

如果您的图形已经是对数对数比例,您如何使用 polyfit 拟合一条线?

最佳答案

Numpy 不关心 matplotlib 图的轴是什么。

我假设您认为 log(y)log(x) 的某个多项式函数,并且您想找到该多项式?如果是这种情况,则运行 numpy.polyfit关于数据集的对数:

import numpy as np
logx = np.log(x)
logy = np.log(y)
coeffs = np.polyfit(logx,logy,deg=3)
poly = np.poly1d(coeffs)

poly 现在是 log(x) 中的多项式,返回 log(y)。为了拟合以预测 y 值,您可以定义一个函数来对您的多项式取幂:

yfit = lambda x: np.exp(poly(np.log(x)))

您现在可以在 matplotlib loglog 绘图上绘制拟合线:

plt.loglog(x,yfit(x))

然后像这样显示

plt.show()

关于python - 在对数对数刻度上使用 matplotlib 拟合曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18760903/

25 4 0
文章推荐: python - 使用pywin32,Dispatch和DispatchEx有什么区别?
文章推荐: c# - 无法将类型 System.EventHandler 隐式转换为 System.EventHandler 错误