当前位置:首页 > 编程技术 > 正文内容

如何在 Python 中使用 plotly 创建人口金字塔?

yc8881年前 (2023-08-05)编程技术225

人口金字塔是人口年龄和性别分布的图形表示。它由两个背靠背的条形图组成,一个显示男性的分布,另一个显示女性在不同年龄组的分布。人口金字塔是一个强大的可视化工具,可以帮助我们了解人口的人口构成并识别趋势和模式。

在本文中,我们将探讨如何在 Python 中使用 Plotly 创建人口金字塔。Plotly是一个强大的可视化库,允许我们在Python中创建交互式和动态绘图。

我们将使用 Plotly 创建一个人口金字塔,该金字塔显示人口的年龄和性别分布。我们将首先将数据加载到熊猫数据帧中,然后使用 Plotly 创建人口金字塔。

使用情节表达

Plotly Express 是 Plotly 的高级 API,可以轻松创建多种类型的绘图,包括人口金字塔。我们可以使用 px.bar() 函数来创建构成人口金字塔的两个背靠背条形图。

请考虑下面显示的代码。

import plotly.express as px import pandas as pd # Load the data into a pandas DataFrame df = pd.read_csv("population_data.csv") # Create the population pyramid using Plotly Express fig = px.bar(df, x="count", y="age", orientation="h", color="gender",           barmode="relative", range_x=[-1, 1]) # Show the plot fig.show()

解释

  • 我们首先导入库,包括用于创建图的 plotly.express 和用于将数据加载到数据帧中的 pandas。

  • 接下来,我们使用 read_csv() 函数将人口数据从 CSV 文件加载到 pandas 数据帧中。

  • 然后,我们创建 px.bar() 函数,该函数将数据帧作为第一个参数,并采用其他几个参数来指定绘图布局和样式。

  • x 参数指定要用于条形长度的变量,条形长度是每个年龄组中的人数。

  • y 参数指定要用于条形高度的变量,即年龄组。

  • 方向参数指定条形应该是水平的。

  • 颜色参数指定条形应按性别着色。

  • barmode 参数指定条形应相对于彼此堆叠。

  • range_x 参数指定 x 轴的范围,该范围确定金字塔的大小。

  • 最后,我们使用 show() 方法打印绘图。

输出

使用绘图图形对象

Plotly Graph Objects 是 Plotly 的较低级别的 API,它提供了对绘图布局和样式的更大灵活性和控制。我们可以使用 Plotly Graph 对象来创建人口金字塔,方法是创建两条条形迹线,一条用于男性,另一条用于女性,然后将它们组合成一个图形。

请考虑下面显示的代码。

import plotly.graph_objs as go import pandas as pd # Load the data into a pandas DataFrame df = pd.read_csv("population_data.csv") # Create the male and female bar traces trace_male = go.Bar(x=df[df["gender"]=="M"]["count"],                  y=df[df["gender"]=="M"]["age"],                  orientation="h",                  name="Male",                  marker=dict(color="#1f77b4")) trace_female = go.Bar(x=df[df["gender"]=="F"]["count"]*(-1),                    y=df[df["gender"]=="F"]["age"],                    orientation="h",                    name="Female",                    marker=dict(color="#d62728")) # Create the layout layout = go.Layout(title="Population Pyramid",                 xaxis=dict(title="Count"),                 yaxis=dict(title="Age"),                 barmode="overlay",                 bargap=0.1) # Create the figure fig = go.Figure(data=[trace_male, trace_female], layout=layout) # Show the plot fig.show()

解释

  • 第一步是导入必要的模块:plotly.graph_objs和熊猫。

  • 数据使用 pd.read_csv 方法加载到熊猫数据帧中。

  • 使用 go 为男性和女性群体创建两个条形图轨迹。条形方法,分别具有计数和年龄组的 x 和 y 值。方向设置为水平,并使用名称和标记参数为每条迹线指定名称和颜色。

  • 将为绘图创建一个布局,其中包含 x 轴和 y 轴的标题和标签。

  • 使用 go 创建图形。图法与两条迹线和布局。

  • 最后,使用 fig.show() 方法显示绘图。

输出

结论

在本文中,我们学习了如何在 Python 中使用 Plotly 创建人口金字塔。我们探索了两种不同的方法来实现这一目标,一种使用熊猫数据透视表,另一种使用 Plotly 图形对象。我们讨论了每种方法的优缺点,并详细介绍了每种方法中使用的代码。

按照本文中提供的步骤和示例,您可以使用 Python 中的 Plotly 创建自己的人口金字塔,并探索自定义和分析其数据的各种方法。


本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/10664.html

标签: Pythonplotly
分享给朋友:

“如何在 Python 中使用 plotly 创建人口金字塔?” 的相关文章

【说站】laravel实现自定义404页面并给页面传值

【说站】laravel实现自定义404页面并给页面传值

以 laravel5.8 为例,虽然有自带的404页面,但太简单,我们更希望能自定义404页面,将用户留在站点。实现的方式很简单,将自定义的视图文件命名为 404.blade.php,并放到 reso...

【说站】用一句话就可以去除宝塔面板操作上的二次验证

【说站】用一句话就可以去除宝塔面板操作上的二次验证

用过宝塔的朋友应该都会发现,现在宝塔面板有些鸡肋的功能,删除文件、删除数据库、删除站点等操作都需要做计算题!不仅加了几秒的延时等待,还无法跳过!这时候就会有朋友在想,如何去除宝塔面板的二次验证,此篇文...

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状;该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线。下面,通过C#程序代码介绍如何...

【说站】linux中redis如何以redis用户重启?

【说站】linux中redis如何以redis用户重启?

通过上图我们可以看到,目前状态是已经以 redis 用户启动着,我想修改下 redis 的密码,然后怎么以 redis 用户重启呢?redis 是 nologin 用户,不能通过 su redis 切...

【说站】使用systemctl配置dnspod-shell实现ddns

【说站】使用systemctl配置dnspod-shell实现ddns

这个是毛子路由器上用的脚本,由于碳云的nat服务器公网IP不断的变,因此只好通过ddns来稳定连接nat服务器了。顺便水一篇文章,大家新年快乐。使用前需要将域名添加到 DNSPod 中,并添加一条A记...

【说站】jenkins配置ssh服务器并配置ssh servers

【说站】jenkins配置ssh服务器并配置ssh servers

1.系统管理-》配置-》Publish over SSH当然,没有这个插件的第一时间去插件管理里面去下载2.生成秘钥任意找一台服务器,生成即可。2.1已有秘钥无须在生成,只需要吧公钥配置到将要配置的s...