【数据可视化】使用 Pyecharts 绘制人口迁徙图:步骤与数据组织形式

🧑 博主简介:曾任某智慧城市类企业算法总监,CSDN / 稀土掘金 等平台人工智能领域优质创作者。
目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。


1. 简介

人口迁徙图是一种展示人口流动情况的可视化图表,通常用于分析人口迁移的来源地和目的地。pyecharts 是一个强大的 Python 数据可视化库,支持多种图表类型,包括地图和地理坐标系,非常适合绘制人口迁徙图。

2. 数据格式

人口迁徙图的数据通常包含以下几部分:

  1. 起点城市和终点城市:表示人口迁移的来源地和目的地。
  2. 迁移人数:表示从起点城市到终点城市的人口数量。

数据格式示例:

ini 复制代码
data = [
    ("广州", "上海", 55),
    ("广州", "北京", 66),
    ("广州", "杭州", 77),
    ("广州", "重庆", 88),
    ("河南", "江苏", 99),
    ("河南", "浙江", 111),
    ("河南", "上海", 121),
    ("河南", "广东", 131),
]

3. 绘图步骤

3.1 安装 Pyecharts

确保你已经安装了 pyecharts。如果尚未安装,可以通过以下命令安装:

复制代码
pip install pyecharts

3.2 准备数据

根据实际需求准备人口迁徙的数据。数据格式如上所示。

3.3 绘制地图

使用 pyechartsGeo 模块来绘制人口迁徙图。

4. 完整代码

以下是完整的代码示例:

less 复制代码
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType, ThemeType

# 准备数据
data = [    ("广州", "上海", 55),    ("广州", "北京", 66),    ("广州", "杭州", 77),    ("广州", "重庆", 88),    ("河南", "江苏", 99),    ("河南", "浙江", 111),    ("河南", "上海", 121),    ("河南", "广东", 131),]

# 创建 Geo 对象
geo = (
    Geo(init_opts=opts.InitOpts(theme=ThemeType.DARK, width="1000px", height="600px"))
    .add_schema(
        maptype="china",
        itemstyle_opts=opts.ItemStyleOpts(color="#1C9048", border_color="#111"),
    )
    .add(
        "广东流出人口",
        [("上海", 55), ("北京", 66), ("杭州", 77), ("重庆", 88)],
        type_=ChartType.EFFECT_SCATTER,
        color="#9F2628",
    )
    .add(
        "广东流出路径",
        [("广州", "上海"), ("广州", "北京"), ("广州", "杭州"), ("广州", "重庆")],
        type_=ChartType.LINES,
        effect_opts=opts.EffectOpts(
            symbol=SymbolType.ARROW, symbol_size=6, color="#9F2628"
        ),
        linestyle_opts=opts.LineStyleOpts(curve=0.2),
    )
    .add(
        "河南流出人口",
        [("江苏", 99), ("浙江", 111), ("上海", 121), ("广东", 131)],
        type_=ChartType.EFFECT_SCATTER,
        color="#401183",
    )
    .add(
        "河南流出路径",
        [("河南", "江苏"), ("河南", "浙江"), ("河南", "上海"), ("河南", "广东")],
        type_=ChartType.LINES,
        effect_opts=opts.EffectOpts(
            symbol=SymbolType.ARROW, symbol_size=6, color="#401183"
        ),
        linestyle_opts=opts.LineStyleOpts(curve=0.2),
    )
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(
        title_opts=opts.TitleOpts(title="人口迁徙图"),
    )
)

# 渲染图表到 HTML 文件
geo.render("population_migration_map.html")

4.1 代码说明

  1. 数据准备

    • data 是一个包含起点城市、终点城市和迁移人数的列表。
  2. 创建 Geo 对象

    • 使用 Geo 创建一个地理坐标系图表。
    • init_opts 设置主题为暗色主题,宽度为1000px,高度为600px。
    • add_schema(maptype="china") 指定地图类型为"中国"。
  3. 添加数据

    • 使用 add 方法添加数据。
    • ChartType.EFFECT_SCATTER 表示绘制起点和终点的散点效果。
    • ChartType.LINES 表示绘制迁徙线路。
    • effect_opts 设置迁徙线路的样式,如符号大小和颜色。
    • linestyle_opts 设置线路的样式,如曲线程度。
  4. 设置样式

    • itemstyle_opts 设置地图底图的样式。
    • label_opts 设置标签的显示状态,这里设置为不显示。
  5. 全局配置

    • title_opts 设置标题为"人口迁徙图"。
  6. 渲染图表

    • 使用 render 方法将图表渲染为一个 HTML 文件,文件名为 population_migration_map.html

5. 运行结果

运行上述代码后,会生成一个名为 population_migration_map.html 的文件,你可以用浏览器打开这个文件查看生成的人口迁徙图。图中会显示从起点城市到终点城市的人口迁徙线路,线路的粗细和颜色会根据迁移人数的大小变化。


希望这篇文章对你有帮助!如果你有实际的人口迁徙数据,只需将 data 替换为真实数据即可。


如果您在人工智能领域遇到技术难题,或是需要专业支持,无论是技术咨询、项目开发还是个性化解决方案,我都可以为您提供专业服务,如有需要可站内私信或添加下方VX名片(ID:xf982831907)

期待与您一起交流,共同探索AI的更多可能!

相关推荐
码界筑梦坊2 天前
114-基于Python的1688电脑硬件数据可视化分析系统
开发语言·python·信息可视化·数据分析·毕业设计·echarts·数据可视化
余丁,微生信3 天前
在线绘制Nature Genetics同款带背景的GO富集条形图
数据可视化·论文插图·生信分析·科研绘图·富集分析·科学科普·nature genetics
余丁,微生信3 天前
聚类和流向:在线绘制热图+桑基图组合图展示基因表达和所属通路
数据可视化·生信分析·科研绘图·热图·桑基图·科学科普·基因表达
泽_浪里白条4 天前
我在 Superset 6.x 做自定义图表 + Embedded SDK 集成的实战复盘(附踩坑清单)
前端·数据可视化
山海鲸实战案例分享4 天前
【数字孪生实战案例】如何配置下拉菜单,实现与电子地图飞线的数据联动查询?~山海鲸可视化
数字孪生·数据可视化·零代码·实战案例·山海鲸可视化·电子地图·数据联动
无心使然4 天前
Openlayers调用ArcGis要素服务之一 ——要素查询 (/query)
前端·javascript·数据可视化
无心使然云中漫步4 天前
Openlayers调用ArcGis地图服务之五 —— 要素识别(/identify)
前端·arcgis·vue·数据可视化
无心使然4 天前
Openlayers调用ArcGis影像服务之一动态地图、地图切片(/exportImage)
前端·javascript·数据可视化
SL-staff5 天前
中小企业 BI 选型:帆软、Power BI、JVS-BI 性价比与架构对比
数据分析·数据可视化·powerbi·帆软·bi工具·部署架构·jvs-bi
山海鲸实战案例分享5 天前
【数字孪生实战案例】怎样开启三维场景,实现场景内所有模型自动转动?~山海鲸可视化
数字孪生·数据可视化·零代码·实战案例·山海鲸可视化·三维场景·自动旋转