如何用 pandas/matplotlib 图求解变量

How to solve for variables with a pandas/matplotlib graph

我正在学习 Pandas。我制作了一个数据字典,并将其转换为 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 = ?? pandas 或 matplotlib 是否有某种 y = plt(x) 或类似的东西?

谢谢!

我想你可能误解了pandas和matplotlib的范围。 Pandas 是一种数据组织工具。 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 在图表中绘制结果:

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()