简体   繁体   中英

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)

But I get another output.. My result is in the code, what is the error made?

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:

在此处输入图像描述

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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