900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > python 条形图图注怎么集中注意力_如何用每个条形图的总和(Matplotlib)注释堆积条形图?...

python 条形图图注怎么集中注意力_如何用每个条形图的总和(Matplotlib)注释堆积条形图?...

时间:2019-09-24 18:18:54

相关推荐

python 条形图图注怎么集中注意力_如何用每个条形图的总和(Matplotlib)注释堆积条形图?...

我有一个分组条形图,每个条形图都是堆叠的。在

我已经用单独的值注释了堆栈的每个部分,现在我想将这些值相加,并注释每个条的总值(高度)。我希望这个注释在每个条的顶部。在

这是我使用的两个数据帧之一:df_title = pd.DataFrame(index=['F','M'],

data={'<10':[2.064897, 1.573255], '10-12':[3.933137, 4.326450], '13-17':[9.242871, 16.715831],

'18-24':[10.226155, 12.487709], '18-24':[8.161259, 10.717797], '35-44':[5.801377, 4.916421],

'45-54':[3.539823, 2.851524], '55+':[1.671583, 1.769912]})

在绘图之前,我将两个数据帧(df_title和df_comps)转换成numpy数组。在

^{pr2}$

以下是完整代码:df_title

df_comps

len = df_title.shape[1]

df_title_concat = np.concatenate((np.zeros((len,1)), df_title.T.values), axis=1)

df_comps_concat = np.concatenate((np.zeros((len,1)), df_comps.T.values), axis=1)

fig = plt.figure(figsize=(20,10))

ax = plt.subplot()

title_colors = ['skyblue', 'royalblue']

comps_colors = ['lightgoldenrodyellow', 'orange']

for i in range(1,3):

for j in list(range(0, df_title.shape[1]-1)):

j += 1

ax_1 = ax.bar(j, df_title_concat[j,i], width=-0.4, bottom=np.sum(df_title_concat[j,:i]), color = title_colors[i-1],

edgecolor='black', linewidth=3, align='edge')

for p in ax_1.patches:

width, height = p.get_width(), p.get_height()

x, y = p.get_xy()

if height > 2:

ax.annotate('{:.2f}%'.format(height), (p.get_x()+0.875*width, p.get_y()+.4*height),

fontsize=16, fontweight='bold', color='black')

ax_2 = ax.bar(j, df_comps_concat[j,i], width=0.4, bottom=np.sum(df_comps_concat[j,:i]), color = comps_colors[i-1],

edgecolor='black', linewidth=3, align='edge')

for p in ax_2.patches:

width, height = p.get_width(), p.get_height()

x, y = p.get_xy()

if height > 2:

ax.annotate('{:.2f}%'.format(height), (p.get_x()+0.15*width, p.get_y()+.4*height),

fontsize=16, fontweight='bold', color='black')

{1美元^

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。