在Python中绘制特定的列值

时间:2018-11-06 00:43:05

标签: python python-3.x pandas dataframe plot

我每年在每个月(1-12)都有HOUR(0-23)重复的值,例如:

Year    Month     HOUR  NAME            RATE
2010    1          0    Big              2  
2010    1          0    Channelview      4
2010    1          0    Cottonwood       12
2010    1          1    Big              4  
2010    1          1    Channelview      9
2010    1          1    Cottonwood       11
.
.
.
2010    2          0    Big              6  
2010    2          0    Channelview      10
2010    2          0    Cottonwood       17
.
.
2013    1          0    Big              4  
2013    1          0    Channelview      9
2013    1          0    Cottonwood       11

我想用NAME(小时)(x轴)的年(月)(连续7年)按小时(x轴)绘制此RATE数据(y轴)。是否可以通过.groupby.loc来执行此操作,而不必根据年月创建额外的数据框?

1 个答案:

答案 0 :(得分:3)

您可以使用groupby进行此操作:

for name, data in df.groupby('NAME'):
    plt.plot(data['HOUR'], data['RATE'], label=name)

plt.xlabel('Hour')
plt.ylabel('Rate')
plt.legend()
plt.show()

enter image description here

[EDIT] 根据您的评论,要为每个名称创建并保存单独的图解,您可以执行以下操作:

for name, data in df.groupby('NAME'):
    plt.plot(data['HOUR'], data['RATE'], label=name)
    plt.xlabel('Hour')
    plt.ylabel('Rate')
    plt.legend()
    plt.savefig('plot_{}.png'.format(name))
    plt.close()