【问题标题】:Plot a bar chart with different legend colors绘制具有不同图例颜色的条形图
【发布时间】:2020-10-21 23:05:05
【问题描述】:

我正在尝试绘制图表。我可以绘制一个可以显示 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')

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

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

【问题讨论】:

  • 您想要不同颜色的年份或符号?
  • 你好,我希望每年有 5 个不同的图表,有 5 种不同的颜色。提前谢谢你。
  • 好的,谢谢您的帮助

标签: python pandas dataframe plot


【解决方案1】:

让我们尝试按年份分组并绘制:

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)

您将有五个不同的地块,每个地块对应一年,如下所示:

如果您想将它们全部绘制到一个图中,请跳过groupby,只需旋转并绘制:

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

得到

【讨论】:

  • 我可以知道是否有删除日期时间列上的月份和日期的功能?符号 APD 存在一个问题,即月和日与这 4 个符号不同。提前谢谢你x
  • df['date'].dt.year 如果您的 date 列是日期时间类型。
猜你喜欢
  • 2020-12-10
  • 1970-01-01
  • 2022-11-13
  • 2019-03-23
  • 2013-03-02
  • 1970-01-01
  • 2015-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多