【问题标题】:Plot multiple time series from on 1 plot从 1 个图上绘制多个时间序列
【发布时间】:2019-05-04 11:04:04
【问题描述】:

我有一个 DataFrame,它看起来像这样:

    date    organization    percent
85  2018-10-01  org1    0.350875
88  2018-10-02  org1    0.341221
... ... ... ...
3961    2018-10-01 org2 0.292511
3964    2018-10-02 org2 0.418349

我需要在同一个图中为每个组织绘制时间序列。

我首先尝试使用最佳拟合线作为散点图,然后是 sns.lmplot 和 sns.regplot,但我似乎只能将所有组织绘制在一起。然后我在这里Pandas: plot multiple time series DataFrame into a single plot 找到了这个答案,但我一直在努力复制格式。我该怎么做呢?谢谢!

【问题讨论】:

  • 你试过什么?你能画出其中一个组织的时间序列吗?你被困在哪里了? SO 不是“让人们免费编码”的服务,它是一个互相帮助的社区,如果你不付出一些努力,你就会被否决。只是一个友好的提示......(也许你还没有读过stackoverflow.com/help/how-to-ask
  • 感谢您的提示,我编辑了我的问题。我已经为此苦苦挣扎了一个多小时。

标签: python dataframe matplotlib plot time-series


【解决方案1】:

一种方法是这样的:

import matplotlib.dates as mdates
grouped_df = df.groupby('organization')
fig, ax = plt.subplots()
for key, item in grouped_df:
    plt.plot_date(item['date'], item['percent'], '-', label=str(key))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d-%m-%Y'))
ax.xaxis.set_major_locator(mdates.DayLocator(interval=1))
plt.legend()
plt.show()

【讨论】:

  • @Downvoter,您能告诉我如何改进答案以及其中有什么问题吗?
猜你喜欢
  • 1970-01-01
  • 2019-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-24
  • 2014-07-20
  • 2016-11-06
  • 2022-01-10
相关资源
最近更新 更多