像直方图一样更改熊猫条形图上的垃圾箱大小

时间:2019-03-29 23:29:10

标签: python pandas matplotlib bar-chart

我正在处理以前所有美国参议员的一些数据。我想用图表说明各种任期长度的频率,按民主党人,共和党人,辉格党,联邦党人和民主共和党人的政党分开。我已经绘制了剧情,但是很难让它每年给我提供信息,所以我想按6年的时间缩减采样率。如果这是一个简单的直方图,我将减少bin的数量,但是由于是条形图,因此当我尝试将AttributeError: Unknown property bins指定为参数时得到bins
我想要这样但不太细的东西:

def tenure_count(frame, party):
    return frame[frame.party == party].tenure.value_counts().reindex(
        [x for x in range(0, 52) if x % 1 == 0], fill_value=0)


df = pd.read_csv("congress_tenure.csv", header=0)
df = df[['tenure', 'party']].sort_values('tenure')

parties = ['Democrat', 'Republican', 'Democratic-Republican', 'Whig', 'Federalist']
counts = pd.DataFrame(
    np.column_stack(
        [tenure_count(df, x) for x in parties]
    )
)
counts.columns = parties
counts.index.name = 'tenure'

counts.plot(kind='bar')
plt.show()

counts DataFrame如下:

        Democrat  Republican  Democratic-Republican  Whig  Federalist
tenure                                                               
0             63          25                      7     0           6
1             82          59                     19     9           8
2             52          21                     12     3          11
3             36          17                     15     3          14
4             40          20                     11     6           9
5             39          37                     10     4           5
...           ...         ...                    ...    ...         ...

1 个答案:

答案 0 :(得分:1)

您可以使用方法here对数据进行装箱。您只需要确定要使用这些值:和,平均值等即可。它看起来像这样:

binned = counts.groupby(counts.index // 6).sum()
binned.plot.bar()