简体   繁体   English

Python matplotlib,如何获得条形图分组

[英]Python matplotlib, how get bar chart grouped

can you help me with the following task?你能帮我完成以下任务吗?

I need an output like this: https://prnt.sc/11e7rcq (of course the color is not important, is just an example about my desired result)我需要一个 output 像这样: https://prnt.sc/11e7rcq (当然颜色并不重要,只是我想要的结果的一个例子)

But I get another output.. My result is in the code, what is the error made?但我得到另一个 output .. 我的结果在代码中,错误是什么?

df = pd.DataFrame(
    {
        'pension': [0,0,1,1],
        'sex': ['female','male','female','male'],
        'count': [2,3,3,1]
    }
)
labels = df['sex'].tolist()
count = df['count'].tolist()
pension = df['pension'].tolist()

x = np.arange(len(labels))  # the label locations
width = 0.35  # the width of the bars

fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, count, width, label='Men')
rects2 = ax.bar(x + width/2, pension, width, label='Women')

# Add some text for labels, title and custom x-axis tick labels, etc.
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(x)
ax.set_xticklabels(labels)
ax.legend()

ax.bar_label(rects1, padding=3)
ax.bar_label(rects2, padding=3)

fig.tight_layout()

plt.show()

You can do as below:您可以执行以下操作:

import seaborn as sns
pension = [0,0,1,1]
count = [2, 3,3,1]
sex = ['female','male','female','male',]
df = pd.DataFrame({'pension': pension,
                    'count': count,
                  "sex": sex})

sns.barplot(x="sex", y="count", hue="pension", data=df)

Result will be as below:结果如下:

在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM