我想要在一个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。
如何在不过滤原始df并首先将其保存为新对象的情况下如何做到这一点?我唯一的想法是只为红色花朵创建一个数据框,然后指定它:
figure.line(x="date", y="flower_count", source=red_flower_ds)
figure.line(x="date", y="flower_count", source=blue_flower_ds)
答案 0 :(得分:5)
你可以试试这个
fig, ax = plt.subplots()
for name, group in df.groupby('flower_color'):
group.plot('date', y='flower_count', ax=ax, label=name)
答案 1 :(得分: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()
输出将如下:
希望它有所帮助。