数据可视化作业一:江西人口数据可视化

目录

作业要求

一、江西省各地市(年末)常住人口分布地图绘制

1.1 代码实现

1.1.1采用Map实现

1.1.2 采用Geo实现

1.2 绘制结果

二、江西省各地市常住人口分布饼状图绘制

2.1代码实现

2.2 绘制结果

三、江西省各地市常住人口城镇化率柱状图绘制

3.1 代码实现

3.2 绘制结果

四、江西省各地市性别比柱状图绘制(降序排列)

4.1 代码实现

4.2 绘制结果

END


作业要求

读取实验课2江西人口普查数据,使用pyecharts 绘制以下图形,提交代码,可视化结果。

  1. 绘制江西省各地市常住人口分布地图(各地市颜色显示);
  2. 绘制江西省各地市常住人口分布饼状图;
  3. 绘制江西省各地市常住人口城镇化率柱状图;
  4. 绘制江西省各地市性别比柱状图(降序排列)。

数据集展示:

地  区

年末常住人口(万人)

总人口性别比(女性=100)

常住人口城镇化率(%)

江西省

4517.4

107.01

61.46

南昌市

643.75

109.98

78.64

景德镇市

162.06

107.77

65.94

萍乡市

180.59

103.8

68.77

九江市

456.07

105.56

62.15

新余市

120.21

109.45

74.14

鹰潭市

115.5

107.73

65.43

赣州市

898

106.02

56.35

吉安市

442.51

106.73

53.41

宜春市

497.11

107.04

57.38

抚州市

357.94

107.22

57.96

上饶市

643.67

106.71

55.31

一、江西省各地市年末)常住人口分布地图绘制

​​​​​​​1.1 代码实现

1.1.1采用Map实现

import pandas as pd
from pyecharts.charts import Map
from pyecharts import options as opts

# 读取Excel文件
df = pd.read_excel("江西省人口普查.xlsx")

# 获取地市名称和年末常住人口数据
province_data = [(city, population) for city, population in zip(df['地区'], df['年末常住人口(万人)'])]

# 创建地图
map_chart = Map()

# 添加地图数据
map_chart.add("年末常住人口", province_data, "江西")

# 设置全局配置项
map_chart.set_global_opts(
    title_opts=opts.TitleOpts(title="江西省各地市常住人口分布地图"),  # 标题配置
    visualmap_opts=opts.VisualMapOpts(max_=max(df['年末常住人口(万人)'].astype(float)), is_piecewise=True),  # 根据数据的最大值设置视觉映射
)

map_chart.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}万人"))  # 数据标签格式化

# 生成图表
map_chart.render("江西人口分布.html")  # 保存为HTML文件

1.1.2 采用Geo实现

import pandas as pd
from pyecharts.charts import Geo
from pyecharts import options as opts

# 读取Excel文件
df = pd.read_excel("江西省人口普查.xlsx")

# 获取地市名称和年末常住人口数据
province_data = [(city, population) for city, population in zip(df['地 区'], df['年末常住人口(万人)'])]

# 创建地理图
geo_chart = Geo()

# 添加地图数据
geo_chart.add_schema(maptype="江西")

# 设置全局配置项
geo_chart.set_global_opts(
    title_opts=opts.TitleOpts(title="江西省各地市常住人口分布地图"),
    visualmap_opts=opts.VisualMapOpts(max_=max(df['年末常住人口(万人)'].astype(float)), is_piecewise=True),
)

# 设置系列配置项,包括数据标签格式化
geo_chart.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}万人"))

# 添加数据
geo_chart.add("年末常住人口", province_data)


# 生成图表并保存为HTML文件
geo_chart.render("江西人口分布geo.html")

1.2 绘制结果

注:绘制结果本次作业均保存为html文件,根据人口的数量进行了颜色的划分显示,在Safari浏览器打开后的结果如下:

(1)采用Map进行绘制

(2)采用Geo进行绘制

二、江西省各地市常住人口分布饼状图绘制

2.1代码实现

import pandas as pd
from pyecharts.charts import Pie
from pyecharts import options as opts

# 读取Excel文件
df = pd.read_excel("江西省人口普查.xlsx")

# 排除江西省总体数据,只保留各地市数据
city_population = df.iloc[1:, [0, 1]].values.tolist()  # 从第二行开始(排除标题行),提取地区名称和年末常住人口数据

# 创建饼状图
pie_chart = Pie()

# 添加数据
pie_chart.add(
    "年末常住人口",
    city_population,
    # 设置内径为0,避免出现环状图
    radius=["0", "75%"]
)

# 设置全局参数
pie_chart.set_global_opts(
    # 标题设置
    title_opts=opts.TitleOpts(title="江西省各地市常住人口分布饼状图"),
    # 图例设置
    tooltip_opts=opts.TooltipOpts(formatter="{a} <br/>{b}: {c}万人")  # 鼠标悬停提示框设置
)

# 显示数据标签
pie_chart.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}万人"))

# 生成图表
pie_chart.render("江西人口分布饼状图.html")  # 保存为HTML文件

2.2 绘制结果

注:鼠标悬停在html文件对应位置上可更直观显示标签等信息,可以很好的提高可视化效果。

最终可视化结果:采用了多种颜色来区分各个地区,更加美观整洁

三、江西省各地市常住人口城镇化率柱状图绘制

3.1 代码实现

import pandas as pd
from pyecharts.charts import Bar
from pyecharts import options as opts

# 读取Excel文件
df = pd.read_excel("江西省人口普查.xlsx")

# 从DataFrame中提取地区名称和城镇化率数据
regions = df['地区'].tolist()
urbanization_rates = df['常住人口城镇化率(%)'].tolist()

# 确保数据顺序一致
if regions[0] != '江西省':
    regions, urbanization_rates = urbanization_rates, regions

# 创建柱状图
bar_chart = Bar()

# 向柱状图添加数据
bar_chart.add_xaxis(regions)
bar_chart.add_yaxis("城镇化率(%)", urbanization_rates)

# 设置全局配置项
bar_chart.set_global_opts(
    # 标题设置
    title_opts=opts.TitleOpts(title="江西省各地市常住人口城镇化率柱状图"),
    # 图例设置
    legend_opts=opts.LegendOpts(orient="horizontal", pos_top="top"),
    tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
    # 提示框设置
    brush_opts=opts.BrushOpts(),  # 开启刷选功能
    # 视觉映射配置,根据数据不同显示不同颜色
    visualmap_opts=opts.VisualMapOpts(max_=100, is_piecewise=True, pieces=[
        {"min": 0, "max": 50, "label": "0-50%", "color": "#FFD700"},
        {"min": 50, "max": 75, "label": "50-75%", "color": "#FFA07A"},
        {"min": 75, "max": 100, "label": "75-100%", "color": "#CD5C5C"}
    ])
)

# 设置标签位置
bar_chart.set_series_opts(label_opts=opts.LabelOpts(position="right"))  # 标签靠右显示

# 生成图表
bar_chart.render("城镇化率柱状图.html")  # 保存为HTML文件

3.2 绘制结果

注:对于该柱状图的绘制,我查阅了一些资料以求得到的图形更加美观。包括如下调整:

·legend_opts: 将图例设置为水平方向,并放置在图表顶部。

·tooltip_opts: 配置了提示框,使其在触发时显示交叉轴的指示器。

·grid_opts: 设置了网格的位置,使得图表的顶部和底部有一定的空间。

·visualmap_opts: 配置了视觉映射,根据城镇化率的不同范围显示不同的颜色,使得数据的比较更加直观。

鼠标悬停效果展示:

四、江西省各地市性别比柱状图绘制(降序排列)

4.1 代码实现

import pandas as pd
from pyecharts.charts import Bar
from pyecharts import options as opts

# 读取Excel文件
df = pd.read_excel("江西省人口普查.xlsx")

# 从DataFrame中提取地区名称和性别比数据
regions = df['地区'].tolist()
gender_ratios = df['总人口性别比(女性=100)'].tolist()

# 将地区和性别比数据组合成元组,并按照性别比进行降序排序,此处采用lambda函数
sorted_data = sorted(zip(regions, gender_ratios), key=lambda x: x[1], reverse=True)

# 提取排序后的地区名称和性别比数据
sorted_regions, sorted_gender_ratios = zip(*sorted_data)

# 创建柱状图
bar_chart = Bar()

# 添加数据
bar_chart.add_xaxis(sorted_regions)
bar_chart.add_yaxis("性别比", sorted_gender_ratios)

# 进行参数设置
bar_chart.set_global_opts(
    # 标题设置
    title_opts=opts.TitleOpts(title="江西省各地市性别比柱状图"),  
    yaxis_opts=opts.AxisOpts(name="总人口性别比"),  # 设置Y轴名称
    xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)),  # X轴标签旋转45度,更加美观
)

# 生成图表
bar_chart.render("jx_gender_ratio_bar_chart.html")  # 保存为HTML文件

4.2 绘制结果

注:柱状图按照地区性别比实现了降序排列

END

 

“我觉得倒不至于选择会影响一生,也不用想着变现,这样会让整个人处在过分焦虑的状态,你很难保证每一步都是对/最优的。物质条件以及环境允许的情况下,喜欢读书就去读书,喜欢去工业界那就去打工,不要违背内心干不想干的事情就是赚。相信人生的价值是均值回归的,会收敛于自己真正热爱的方向”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/722539.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

7_机械臂工作台坐标系理论_一般坐标系的映射_2

1、一般坐标系的映射 经常有这种情况&#xff0c;我们已知矢量相对坐标系{B}的描述&#xff0c;并且想求出它相对于另一个坐标系{A}的描述。结合上次的理论和平时对机械臂使用的经验&#xff0c;使用3点法标定机械臂工作台坐标系(我习惯称为用户坐标系&#xff0c;下面称为用户…

混剪视频的素材一般去哪找?做短视频素材混剪网站库分享!

在短视频和自媒体的快速发展时代&#xff0c;混剪视频已成为许多创作者展现创意和吸引观众的重要手段。制作高质量的混剪视频离不开优质素材的支持。今天&#xff0c;我将为大家推荐几个优秀的素材网站&#xff0c;帮助你轻松获取制作混剪视频所需的多样素材&#xff0c;提升视…

PyQt5.QtWidgets常用函数及说明

目录 PyQt5.QtWidgets简介常用函数设置窗口标题和固定大小创建垂直布局创建进度条 PyQt5.QtWidgets简介 PyQt5.QtWidgets 是 PyQt5 库中的一个模块&#xff0c;它包含了用于创建图形用户界面&#xff08;GUI&#xff09;的各种小部件&#xff08;widgets&#xff09;。这些小部…

Gobject tutorial 六

Instantiatable classed types Initialization and destruction 类型的实例化是通过函数g_tpye_create_instance()实现的。这个函数首先会查找与类型相关的GTypeInfo结构体&#xff0c;之后&#xff0c;查询结构体中的instance_size和 instance policy即 n_preallocs(在 2.10版…

陶建辉入选 2023 年度“中国物联网行业卓越人物榜”

在这个技术飞速发展的时代&#xff0c;物联网行业作为推动社会进步的重要力量&#xff0c;正在不断地演化和革新。近日&#xff0c;中国智联网生态大会暨“2023 物联之星”年度榜单颁奖典礼在上海浦东举行。现场公布了拥有物联网行业奥斯卡奖之称的 ——“物联之星 2023 中国物…

深度 | OpenAI COO闭门访谈:大模型已至,企业如何落地?

图片来源&#xff1a;OpenAI Z Highlights&#xff1a; 仅仅允许公司单一部门使用互联网非常可笑。类似地&#xff0c;给所有员工开放AI权限将会是最大的催化剂。当前阶段的AI企业级部署&#xff0c;要让员工熟悉AI工具的使用方式&#xff0c;让他们将工作流程与模型的功能紧密…

九、数据结构(并查集)

文章目录 1.并查集操作的简单实现2.解决问题3. 并查集优化3.1 合并的优化3.2查询优化3.3查询优化2 通常用“帮派”的例子来说明并查集的应用背景&#xff1a;在一个城市中有 n ( n < 1 0 6 ) n(n < 10^6) n(n<106)个人&#xff0c;他们分成不同的帮派&#xff0c;给出…

[算法刷题积累] 两数之和以及进阶引用

两数之和很经典&#xff0c;通常对于首先想到的就是暴力的求解&#xff0c;当然这没有问题&#xff0c;但是我们如果想要追求更优秀算法&#xff0c;就需要去实现更加简便的复杂度。 这里就要提到我们的哈希表法: 我们可以使用unordered_map去实现&#xff0c;也可以根据题目&a…

【Linux】线程(二:线程控制)

本篇文章主要围绕线程控制来进行展开。 主题思路是以create与join两个接口展开。 目录 pthread_create 与 pthread_join:pthread_create:pthread_join: 代码&#xff1a;问题一&#xff1a;主线程与新线程谁先退出&#xff1f;问题二&#xff1a;哪个线程应该最后退出&#xf…

【关键点检测和描述】SuperPoint

一、引言 论文&#xff1a; SuperPoint: Self-Supervised Interest Point Detection and Description 作者&#xff1a; Magic Leap 代码&#xff1a; SuperPoint 特点&#xff1a; 提出Homographic Adaptation策略&#xff0c;提升模型从虚拟数据迁移到真实数据的表现&#x…

邻氯苯甲酰氯在医药、农药等领域应用广泛 市场需求稳定且有增长趋势

邻氯苯甲酰氯在医药、农药等领域应用广泛 市场需求稳定且有增长趋势 邻氯苯甲酰氯又称为2-氯苯甲酰氯、氯化邻氯苯甲酰&#xff0c;化学式为C7H4Cl2O&#xff0c;是一种化学物质&#xff0c;外观为黄色液体&#xff0c;不溶于水&#xff0c;溶于醇、醚、丙酮&#xff0c;有强烈…

第100+12步 ChatGPT学习:R实现KNN分类

基于R 4.2.2版本演示 一、写在前面 有不少大佬问做机器学习分类能不能用R语言&#xff0c;不想学Python咯。 答曰&#xff1a;可&#xff01;用GPT或者Kimi转一下就得了呗。 加上最近也没啥内容写了&#xff0c;就帮各位搬运一下吧。 二、R代码实现KNN分类 &#xff08;1&a…

API 设计技巧:基础知识与实践的方法

在这篇深入探讨中&#xff0c;我们将从基础开始&#xff0c;逐步介绍 API 设计&#xff0c;并探讨定义卓越API的最佳实践。 作为一名开发者&#xff0c;你可能已经熟悉了许多这些概念&#xff0c;但我将提供详细解释&#xff0c;以加深你的理解。 API 设计&#xff1a;电子商…

图纸管理最佳实践:从混乱到有序的转变

图纸管理最佳实践&#xff1a;从混乱到有序的转变 在工程项目中&#xff0c;图纸是不可或缺的重要资料&#xff0c;它们承载着设计者的智慧与心血。然而&#xff0c;随着项目的推进和时间的推移&#xff0c;图纸管理往往变得混乱不堪&#xff0c;给项目的顺利进行带来诸多不便。…

ROS(四)

write in advance 实验四&#xff0c;在经历了实验三的失败后&#xff0c;卷土重来。 幸运的是&#xff0c;此次实验很简单&#xff0c;很快就能搞定。 Part one 使用指令查看自己摄像头的设备号&#xff0c;如果报错&#xff0c;且你为虚拟机&#xff0c;可能是未在虚拟机处…

Java学习 (二)关键字、标识符、数组

一、关键字 我们第一章案例中有很多关键字&#xff0c;比如class、public、static、void等&#xff0c;这些关键字依旧被java定义好了&#xff0c;可以拿来用&#xff0c;不需要死记硬背&#xff0c;按照官方文档查询即可 #官方文档 https://docs.oracle.com/javase/tutorial/j…

docker-compose设置永久启动、自动重启

步骤一 找到 docker-compose.yml 文件 步骤二 vim 打开文件 找到 image: PS&#xff1a;就是为了对齐格式 步骤三 在其下方添加&#xff1a; restart: always而后保存即可

打开nginx连接的php页面报错502

目录 问题描述&#xff1a; 原因&#xff1a; 1. 使用 Unix 域套接字&#xff08;Unix Socket&#xff09; 区别和优势&#xff1a; 2. 使用 TCP/IP 套接字 区别和优势&#xff1a; 如何选择 扩展&#xff1a;Rocky_Linux9.4安装PHP的步骤&#xff1a; 使用Remi存储库…

Wifi通信协议:WEP,WPA,WPA2,WPA3,WPS

前言 无线安全性是保护互联网安全的重要因素。连接到安全性低的无线网络可能会带来安全风险&#xff0c;包括数据泄露、账号被盗以及恶意软件的安装。因此&#xff0c;利用合适的Wi-Fi安全措施是非常重要的&#xff0c;了解WEP、WPA、WPA2和WPA3等各种无线加密标准的区别也是至…

通过防抖动代码解决ResizeObserver loop completed with undelivered notifications.

通过防抖动代码解决ResizeObserver loop completed with undelivered notifications. 一、报错内容二、解决方案解释&#xff1a; 一、报错内容 我通过el-tabs下的el-tab-pane切换到el-table出现的报错&#xff0c;大致是渲染宽度出现了问题 二、解决方案 扩展原生的 Resiz…