从一个数据框绘制多条线

3

我有一个Pandas数据框架,其中包含我想要绘制的所有数据,例如:

         date flower_color  flower_count
0  2017-08-01         blue             1
1  2017-08-01          red             2
2  2017-08-02         blue             5
3  2017-08-02          red             2

我需要在一个图中绘制几条不同的线:x值应该是第一列中的日期,y值应该是flower_count,而y值应该取决于第二列中给定的flower_color。
我该如何做到这一点,而不必先过滤原始数据并将其保存为新对象?我的唯一想法是创建一个仅包含红花的数据框,然后指定它,例如:
figure.line(x="date", y="flower_count", source=red_flower_ds)
figure.line(x="date", y="flower_count", source=blue_flower_ds)

如果我理解正确的话,您需要一个带有两个子图的绘图。两个子图的X轴都是日期,而Y轴则是每种颜色的花朵计数? - Wenlong Liu
2个回答

8
你可以尝试这个。
fig, ax = plt.subplots()
for name, group in df.groupby('flower_color'):
    group.plot('date', y='flower_count', ax=ax, label=name)

enter image description here


2

如果我理解正确,您需要一个带有两个子图的绘图。两个子图的X轴都是日期,而Y轴是每种颜色的花数?

在这种情况下,您可以使用pandas可视化中的子图。

fig, axes = plt.subplots(2)
z[z.flower_color == 'blue'].plot(x=['date'], y= ['flower_count'],ax=axes[0]).set_ylabel('blue')
z[z.flower_color == 'red'].plot(x=['date'], y= ['flower_count'],ax=axes[1]).set_ylabel('red')

plt.show()

输出结果将会如下所示:

enter image description here

希望能对您有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接