Pandas多指标绘图

2024-04-28 12:53:22 发布

您现在位置:Python中文网/ 问答频道 /正文

在对DataFrame执行groupby.sum()之后,我在尝试创建预期的绘图时遇到了一些问题。

grouped dataframe with multi-index

如何为每个Code创建一个子块(kind='bar'),其中x轴是Month,条是ColAColB


Tags: 绘图dataframebarcode子块sumgroupbykind
2条回答

使用以下数据帧。。。

DataFrame

# using pandas version 0.14.1
from pandas import DataFrame
import pandas as pd
import matplotlib.pyplot as plt

data = {'ColB': {('A', 4): 3.0,
('C', 2): 0.0,
('B', 4): 51.0,
('B', 1): 0.0,
('C', 3): 0.0,
('B', 2): 7.0,
('Code', 'Month'): '',
('A', 3): 5.0,
('C', 1): 0.0,
('C', 4): 0.0,
('B', 3): 12.0},
'ColA': {('A', 4): 66.0,
('C', 2): 5.0,
('B', 4): 125.0,
('B', 1): 5.0,
('C', 3): 41.0,
('B', 2): 52.0,
('Code', 'Month'): '',
('A', 3): 22.0,
('C', 1): 14.0,
('C', 4): 51.0,
('B', 3): 122.0}}

df = DataFrame(data)

。。。可以绘制以下图形(使用横截面):

f, a = plt.subplots(3,1)
df.xs('A').plot(kind='bar',ax=a[0])
df.xs('B').plot(kind='bar',ax=a[1])
df.xs('C').plot(kind='bar',ax=a[2])

enter image description here

一个给A,一个给B,一个给C,x轴:'月',酒吧是可乐和可乐。 也许这就是你要找的。

我发现unstack(level)方法工作得很好,它还有一个额外的好处,就是不需要知道有多少代码。

df.unstack(level=0).plot(kind='bar', subplots=True)

相关问题 更多 >