我在名为 value.txt 的文件中有一个 x,y 值的数据集,如下所示:
1 32432.4323
2 23432.1143
.
.
.
999 1111.23432
我还有一个函数 f(x), 2*x^2+1
我想绘制函数和 y 值之间的差异曲线。像这样的事情:
1 32432.4323 - f(1)
2 23432.1143 - f(2)
.
.
.
999 1111.23432 - f(999)
我可以通过计算差异并将其放入单独的文件values_diff.txt并将其加载到matplotlib中来做到这一点,但我想知道在matplotlib中是否有更惯用的方法来做到这一点,不需要显式使用第二个文件,
最佳答案
我并不反对编写代码。:)
为 x 值创建一个向量,为 y 值创建一个向量,然后为 y 值与函数值之间的差值创建一个向量。在此代码中,我为缺失的 y 值提供了虚拟值。然后简单地首先根据 x 值绘制 y 值,然后根据 x 值绘制差值。
import matplotlib.pyplot as plt
f = lambda x: 2*x**2 +1
x = list(range(1,1000))
y = [32432.4323, 23432.1143] +[23432.1132-10*k for k in range(1,997)]+ [1111.23432]
diffs=[]
for an_x, a_y in zip(x,y):
diffs.append(a_y-f(an_x))
plt.plot(x, y, 'r-')
plt.plot(x, diffs, 'b-')
plt.show()
关于python - 如何在 matplotlib 中绘制数据和函数之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41496014/