【问题标题】:Creating a curve from dataframe从数据框创建曲线
【发布时间】:2019-07-21 11:00:21
【问题描述】:

我有一个如下所示的数据框:

                  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],但没有成功。

【问题讨论】:

    标签: python pandas matplotlib area curve


    【解决方案1】:

    要更改 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()
    

    【讨论】:

      猜你喜欢
      • 2021-11-09
      • 2016-04-29
      • 2021-04-03
      • 2019-07-13
      • 1970-01-01
      • 2018-07-14
      • 2014-07-24
      • 1970-01-01
      • 2020-02-26
      相关资源
      最近更新 更多