【问题标题】:How to plot min max line plot in python pandas如何在 python pandas 中绘制最小最大线图
【发布时间】:2017-09-08 23:21:08
【问题描述】:

您好,我有一个格式如下的数据框。

为简单起见,我将显示分类为年份的数据,但它具有季度数据。 我想做一个线图,最小最大为阴影,平均值为线图。我尝试了不同的方法来做到这一点,但我无法在我需要的输出中得到它,如下所示。

作为替代方案,带有均值、最小值和最大值的箱线图也可以使用。

数据格式

需要输出

【问题讨论】:

  • 你考虑过seaborn.tsplot吗?似乎可以满足您的需求,尽管您可能需要稍微重塑数据。

标签: python pandas matplotlib plot


【解决方案1】:

IIUC,groupby YEAR 并按最大值、最小值和平均值聚合您的 Value 列,然后绘制平均值并使用 fill_between 在最大值和最小值内进行着色。

data = df.groupby('YEAR')['VALUE'].agg({'Low Value':'min','High Value':'max','Mean':'mean'})
data.reset_index(inplace=True)

ax  = data.plot(x='YEAR', y='Mean', c='white')
plt.fill_between(x='YEAR',y1='Low Value',y2='High Value', data=data)

【讨论】:

  • 我发现在groupby 语句中as_index = False 是必需的。
  • 如果您在 x 轴上使用日期,请查看this answer,了解如何处理 pandas 和 matplotlib 之间的日期格式差异。
猜你喜欢
  • 1970-01-01
  • 2021-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-19
  • 2014-09-13
  • 2021-01-11
相关资源
最近更新 更多