如何使用pandas / matplotlib图解决变量

时间:2017-03-13 20:17:24

标签: python pandas matplotlib graph equation

我正在学习熊猫。我已经制作了数据字典,并将其转换为DataFrame。然后我把它绘制成线图。我很好奇如何将该折线图视为一个等式,并获得输入变量的结果?

例如:

import pandas
import matplotlib
import matplotlib.pyplot as plt

graphPoints = {"Number":[1,2,3,5,6],"value": [100.0,85.0,56.4,22.7,6.8]}

mydf = pandas.DataFrame(round1data)
myindexed_df = round1df.set_index('Number') 
myindexed_df.plot()

plt.show()

如何在该图表上获取新值的结果?即如果x = 4,则y = ??是否有某种y = plt(x)或与pandas或matplotlib相似的东西?

谢谢!

1 个答案:

答案 0 :(得分:2)

我想你可能误解了pandas和matplotlib的范围。熊猫是一种数据组织工具。 Matplotlib是一种数据可视化工具。这里你需要的是一个数据计算工具。

一种可能使用的工具是numpy

为了计算位置x = 4的y值,您可以使用numpy.interp()插入给定的数组。

import numpy as np

number = np.array([1,2,3,5,6])
value  = np.array([100.0,85.0,56.4,22.7,6.8])

print (np.interp(4, number, value))

这会打印39.55

现在您可以使用matplotlib在图表中绘制结果:

enter image description here

import numpy as np

number = np.array([1,2,3,5,6])
value  = np.array([100.0,85.0,56.4,22.7,6.8])

f = lambda x: np.interp(x, number, value)

import matplotlib.pyplot as plt

plt.plot(number, value, ls="-.", marker="o", label="values")
plt.plot(4, f(4), marker="s",markersize=8,  label="x = 4, y = {}".format(f(4)))

plt.legend()
plt.show()