首页 > 解决方案 > 从数据框创建曲线

问题描述

我有一个看起来像这样的数据框:

                  0        1       2     ...         147      148      149
Columns 0       190.2    190.5   189.9   ...       146.7    146.4    146.1
Values  0    -49.3892 -47.0297 -39.528   ...    -30.7926 -30.7561  -30.719
Columns 1       190.2    190.5   189.9   ...       146.7    146.4    146.1
Values  1    -49.3892 -47.0297 -39.528   ...    -30.7926 -30.7561  -30.719
Columns 2       190.2    190.5   189.9   ...       146.7    146.4    146.1

我想为每一对Columns #和创建一条曲线Value #。数据框有 3478 行,因此有 1738 对数据。

我试过一个for loop看起来像:

 import matplotlib.pyplot as plt
 nline2 = len(df2.index)
 for i in range (0,(nline-2),2)
    x_data = df2.values[[i]]
    y_data = df2.values[[(i+1)]]
    plt.plot(x_data,y_data)

但我收到一条错误消息:TypeError: unhashable type: 'numpy.ndarray'

请注意,我试图绘制只是为了看看我得到了什么,最终目标是计算每对曲线下的面积并将其添加到所有对。亨斯for loop.

更新

我认为找到了问题的根源,行调用Columns #用作标题而不是标量值。我试过df2.iat[index,columns]但没有成功。

标签: pythonpandasmatplotlibareacurve

解决方案


要更改Columns #行的值,我使用了:

df2 = df2.apply(pd.to_numeric)

然后出于仅绘制第一对的目的:

i = 0

x_data = df2.values[[i]]
y_data = df2.values[[(i+1)]]

#line = plt.plot(x_data, y_data)
#plt.setp(line, color = 'r', linewidth = 2.0)

line = plt.Line2D(x_data, y_data,linewidth = 2)
plt.show()

推荐阅读