绘制具有不同图例颜色的条形图

时间:2020-10-21 14:51:57

标签: python pandas dataframe plot

我正在尝试绘制图表。我可以绘制一个折线图,该图可以显示5种不同的颜色和5个图例。我想绘制一个可以显示5种不同颜色的条形图,但是我绘制的条形图只有一种颜色,我可以知道我的代码有什么问题吗?

这是我的代码:

import pandas as pd
import matplotlib as plt

df = pd.read_csv('df.csv')
df.set_index('date',inplace=True)

date        symbol  roe
31/12/2015  NEM -0.9866
31/12/2016  NEM -6.8385
31/12/2017  NEM -0.6164
31/12/2018  NEM 2.7824
31/12/2019  NEM 13.2141
31/12/2015  MLM 7.1164
31/12/2016  MLM 10.27
31/12/2017  MLM 15.2355
31/12/2018  MLM 9.5042
31/12/2019  MLM 11.4322
30/9/2015   APD 13.0861
30/9/2016   APD 15.5544
30/9/2017   APD 11.3416
30/9/2018   APD 13.3381
30/9/2019   APD 15.8882
31/12/2015  VMC 5.2291
31/12/2016  VMC 9.238
31/12/2017  VMC 11.9421
31/12/2018  VMC 9.9529
31/12/2019  VMC 11.0729
31/12/2015  FMC -11.1408
31/12/2016  FMC 6.558
31/12/2017  FMC -4.9167
31/12/2018  FMC 16.7456
31/12/2019  FMC 21.2189

我可以绘制折线图:-

df.groupby('symbol')['roe'].plot(figsize=(10,8),legend='True')

enter image description here

我可以绘制图表,但我希望图表每年有5个不同颜色的条形图。我可以知道如何解决这个问题吗?

df.groupby('symbol')['roe'].plot(kind='bar', legend='True', figsize = (5,5))

enter image description here

1 个答案:

答案 0 :(得分:0)

让我们尝试按年份和情节分组:

for y,d in df.groupby(pd.to_datetime(df['date']).dt.year):
    ax = d.pivot('date','symbol','roe').plot.bar()
    ax.set_title(y)

您将拥有五个不同的地块,每个地块的年度如下所示:

enter image description here

如果您想将所有图表都绘制到一个图中,请跳过groupby,只需旋转并绘制:

df.pivot('date','symbol','roe').plot.bar()

并获得

enter image description here