我有一个相对较小的DataFrameGroupBy。以下是我每天的全部数据。尽管将需要数年的时间。
day loc_source loc_target count
0 1.566691e+09 east east 1768
1 1.566691e+09 east west 559
2 1.566691e+09 unknown east 73
3 1.566691e+09 unknown west 160
4 1.566691e+09 west east 53
5 1.566691e+09 west west 1563
现在,我要绘制以下内容:count
与day
,loc_source
和loc_target
的每个唯一组合用一行。共6条线。 1个情节。
我可以通过遍历行来做到这一点,但是我不认为这是正确的方法。如何在matplotlib中绘制此图?
编辑:由于是情节,因此我无法添加预期的输出。但我可以描述一下:该图应在y轴上显示0到2000之间的数字(标签计数),而在x轴上显示一个数据点(1.55591e+09
)(目前,这当然会改变一旦我使用完整的数据集)。情节上有6条线:
LEGEND y VALUE
east east 1768
east west 559
unknown east 73
unknown west 160
west east 53
west west 1563
答案 0 :(得分:1)
您可以先使用pivot
来重组数据。首先,我们使用东/西值创建一个新列:
df['eastwest'] = df['loc_source'] + df['loc_target']
然后我们重新构建您的数据并绘制图:
df.pivot(index='day', columns='eastwest', values='count').plot()
这会将日期移动到索引中,并为loc_source和loc_target的每种组合创建列。调用图将在每列中创建一条线,其中日期在x轴上,而计数在y轴上。