python根据时间序列画折线图_Matplotlib:为每个时间序列subp绘制多条线

设置

始终提供重现问题的示例数据。

我在这里提供了一些cols = pd.Index(['TJ', 'WH', 'SAFE', 'Walmart', 'Generic'], name='Store')

dates = ['2015-10-23', '2015-10-24']

fruit = ['carrots', 'pears', 'mangos', 'banannas',

'melons', 'strawberries', 'blueberries', 'blackberries']

rows = pd.MultiIndex.from_product([dates, fruit], names=['datestring', 'fruit'])

df = pd.DataFrame(np.random.randint(50, size=(16, 5)), rows, cols)

df

2fhvp.png

首先,要用pd.to_datetime转换第一级行索引

^{pr2}$

现在我们可以看到我们可以直观地绘制# fill_value is unnecessary with the sample data, but should be there

df.TJ.unstack(fill_value=0).plot()

8lDnV.png

我们可以用fig, axes = plt.subplots(5, 1, figsize=(12, 8))

for i, (j, col) in enumerate(df.iteritems()):

ax = axes[i]

col = col.rename_axis([None, None])

col.unstack(fill_value=0).plot(ax=ax, title=j, legend=False)

if i == 0:

ax.legend(bbox_to_anchor=(1.05, 1), loc='upper left', ncol=1)

fig.tight_layout()

unyQA.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值