从一个数据框中绘制多条线
Plot multiple lines from one data frame
我在一个 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)
你可以试试这个
fig, ax = plt.subplots()
for name, group in df.groupby('flower_color'):
group.plot('date', y='flower_count', ax=ax, label=name)
如果我的理解是正确的,你需要一个有两个子图的情节。两个子图的 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()
输出如下:
希望对您有所帮助。
我在一个 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)
你可以试试这个
fig, ax = plt.subplots()
for name, group in df.groupby('flower_color'):
group.plot('date', y='flower_count', ax=ax, label=name)
如果我的理解是正确的,你需要一个有两个子图的情节。两个子图的 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()
输出如下:
希望对您有所帮助。