首页 > 解决方案 > 带有多索引列的熊猫子图

问题描述

根据以下答案,我应该能够使用带有多索引的子图来显示成对图:Pandas Plotting with Multi-Index

但这似乎对我不起作用。这是一个例子:

import pandas as pd
import numpy as np
# prepare example data
adf = pd.DataFrame(index = pd.date_range('2019-01-01', periods=30), 
             data= np.random.randint(0,100,(30,2)), columns=['X','Y'])
bdf = pd.DataFrame(index = pd.date_range('2019-01-01', periods=30), 
             data= np.random.randint(0,100,(30,2)), columns=['X','Y'])
df = pd.concat({'a': adf, 'b': bdf}).unstack(level=0)

# plot
_ = df.plot(kind='line', subplots=True, figsize=(10, 10))

结果是每列有 4 个图。

在此处输入图像描述

但我想要两个像这样的成对图:

在此处输入图像描述

我可以通过以下行来实现这一点:

_ = [df.loc[:,df.columns.get_level_values(0) == c].plot() for c in df.columns.get_level_values(0).unique()]

但这不应该通过多索引和子图功能实现吗?

标签: pythonpandas

解决方案


推荐阅读