Python 和 Seaborn 的人口金字塔

Posted

技术标签:

【中文标题】Python 和 Seaborn 的人口金字塔【英文标题】:Population Pyramid with Python and Seaborn 【发布时间】:2020-12-16 13:27:45 【问题描述】:

我正在尝试创建一个按性别分组的人口金字塔。不幸的是,我无法让它工作。情节只是一张白色的图片,轴似乎以某种方式颠倒了。也许有人可以帮助我,谢谢。

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# I read this testdata from a csv file
testdata = pd.DataFrame('age': [20, 20, 21, 21, 22, 22, 23, 23],
                'gender': ["male", "female", "male", "female", "male", "female", "male", "female"],
                'count': [10, -12, 13, -10, 16, -14, 17, -16]);


plt.figure(figsize=(13, 10), dpi=80)
group_col = 'gender'
order_of_bars = testdata['age'].unique()[::-1]
colors = [plt.cm.Spectral(i / float(len(testdata[group_col].unique()) - 1)) for i in range(len(testdata[group_col].unique()))]


for c, group in zip(colors, testdata[group_col].unique()):
    barplot = sns.barplot(x='count', y='age', data=testdata.loc[testdata[group_col] == group, :], order=order_of_bars, color=c, label=group)

plt.xlabel("Counts")
plt.ylabel("Age")
plt.yticks(fontsize=12)
plt.title("Pyramide", fontsize=22)
plt.legend()
plt.show()

【问题讨论】:

只是好奇,为什么你有否定的count?你的预期输出是什么? 【参考方案1】:

如果你正在寻找this population pyramid,让我们试试吧:

sns.barplot(data=testdata, x='count',y='age',
            hue='gender',orient='horizontal', 
            dodge=False)

输出:

【讨论】:

以上是关于Python 和 Seaborn 的人口金字塔的主要内容,如果未能解决你的问题,请参考以下文章

R中性别过剩的人口金字塔

R语言ggplot2可视化:可视化人口金字塔图人口金字塔显示不同性别不同年龄段的人口数,是了解人口组成的最优可视化方法人口金字塔图可以用来表示按体积排序的群体的分布形成漏斗结构

如何删除人口金字塔中的负 X 轴标签?

D3.js中Population Pyramid详解

D3.js中Population Pyramid详解

R语言ggplot2可视化:可视化人口金字塔图直方图(堆叠直方图连续变量堆叠直方图离散变量堆叠直方图)密度图箱图(添加抖动数据点tufte箱图多分类变量分组箱图)小提琴图