熊猫DataFrame的100%面积图

时间:2015-04-29 10:00:58

标签: python pandas plot

pandas' documentation中,您可以找到关于区域图的讨论,特别是堆叠它们。是否有一种简单直接的方法来获得像这样的100%区域叠加图

enter image description here

来自this post

1 个答案:

答案 0 :(得分:11)

该方法与the other SO answer中的方法基本相同;将每一行除以行的总和:

df = df.divide(df.sum(axis=1), axis=0)

然后你可以像往常一样打电话给df.plot(kind='area', stacked=True, ...)

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
np.random.seed(2015)

y = np.random.randint(5, 50, (10,3))
x = np.arange(10)
df = pd.DataFrame(y, index=x)

df = df.divide(df.sum(axis=1), axis=0)
ax = df.plot(kind='area', stacked=True, title='100 % stacked area chart')

ax.set_ylabel('Percent (%)')
ax.margins(0, 0) # Set margins to avoid "whitespace"

plt.show()

产量

enter image description here