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

标签 python numpy matplotlib

我在 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/

相关文章:

python - 为什么 Sonic Visualizer 和我的 Python 脚本之间的频谱分析存在 dB 差异?

python - 使用 Matplotlib 和 numpy 绘制方程组

text - PIL : using fromarray() with binary data and writing coloured text

python - Numpy 特征向量计算不正确

python - 具有相同数据的 Matplotlib 图不重叠

python - 导入无显示的 Matplotlib

python - 需要帮助在 Python 中拼接列表中的字符串对象

python - 当 paramiko 中的 exec_command 进入无限循环时,如何退出?

python - 带有 Jupyter Notebook : Shortcut for “run all” ? 的 Visual Studio 代码

python - 将 Kivy 的默认 Python 解释器从 2.7 更改为 3.3