【发布时间】:2018-11-06 14:40:35
【问题描述】:
我有一些看起来像 data = pd.read_csv(....) 的数据:
Year Month HOUR NAME RATE
2010 1 0 Big 222
2010 1 0 Welsch Power 434
2010 1 0 Cottonwood 124
2010 1 1 Big 455
2010 1 1 Welsch Power 900
2010 1 1 Cottonwood 110
.
.
.
2010 2 0 Big 600
2010 2 0 Welsch Power 1000
2010 2 0 Cottonwood 170
.
.
2010 3 0 Big 400
2010 3 0 Welsch Power 900
2010 3 0 Cottonwood 110
如您所见,小时 (0 - 23) 每月重复一次 (0 - 12)。我需要一种循环值的方法,以便我可以每月按小时绘制 RATE (Y-Axis) (X-Axis)对于每个 NAME。
我的尝试看起来像:
for name, data in data.groupby('NAME'):
fig = plt.figure(figsize=(14,23))
plt.subplot(211)
plt.plot(data['HOUR'], data['RATE'], label=name)
plt.xlabel('Hour')
plt.ylabel('Rate')
plt.legend()
plt.show()
plt.close()
这可行,但因为 HOUR 会重复每月的每个变化,所以图表每次循环时都会返回 0。我希望将 12 个月中的每一个作为不同颜色的单独线,用于一个图表上的每个名称,但目前它们看起来像这样:
【问题讨论】:
标签: python python-3.x pandas dataframe matplotlib