【可视化】用pyecharts绘制我国人口分布

【可视化】用pyecharts绘制我国人口分布

本文旨在利用Python中的pyecharts库对我国人口分布进行分析,并在地图上进行可视化展示。由于我国省份较多,使用地图能够更直观地展示数据。

pyecharts库简介

pyecharts库的地图数据主要来源于两个模块:Map和Geo。

Map模块:主要实现对“世界”、“国家”、“省”、“县市”等行政区域地图的显示。

Geo模块:主要用于实现热力图等功能地图的显示。

安装pyecharts

pip install pyecharts

Geo和Map模块主要函数

[1] render():通过render函数将制作完成的图表输出为html文件,可在括号中传递输出地址参数,将html文件保存到自定义的位置。

[2] add_schema():控制地图类型,设置背景和边界颜色等。

[3] add():添加图表名称、传入数据、选择图类型等。

[4] set_series_opts():系列配置项,可配置文字样式、标签样式等。

[5] set_gloal_opts():全局配置项,可配置标题、动画、颜色等。

[6] render_notebook():在notebook中显示制作完成的图表。

[7] add_coordinate():新增一个坐标点。

[8] add_coordinate_json():以json形式新增多个坐标点。

[9] get_coordinate():根据地点查询对应坐标。

代码实现

导入相关库

# 导入相关库
import pyecharts
pyecharts.globals._WarningControl.ShowWarning = False
import pandas as pd
from pyecharts.charts import Map
from pyecharts import options as opts

加载数据

df = pd.read_csv(population.csv)
df.head()

数据示例:

绘制地图

'''
导入地图和数据
'''

m1=Map()
m1.add("人口(万人)", [list(z) for z in zip(df.province, df.populat)], "china",is_map_symbol_show=True)

'''
自适应间隔图例
'''

population_data = df['populat']

# 设置图例最大最小值
min_population = 0
max_population = population_data.max()

interval_base = 10 ** (len(str(int(max_population))) - 3)
interval_size = interval_base * ((max_population - min_population) // interval_base // 6 + 1)

pieces = [
    {'min': min_population, 'max': min_population + interval_size, 'label': f'{min_population:.0f}-{min_population + interval_size:.0f}万人'},
    {'min': min_population + interval_size, 'max': min_population + 2 * interval_size, 'label': f'{min_population + interval_size:.0f}-{min_population + 2 * interval_size:.0f}万人'},
    {'min': min_population + 2 * interval_size, 'max': min_population + 3 * interval_size, 'label': f'{min_population + 2 * interval_size:.0f}-{min_population + 3 * interval_size:.0f}万人'},
    {'min': min_population + 3 * interval_size, 'max': min_population + 4 * interval_size, 'label': f'{min_population + 3 * interval_size:.0f}-{min_population + 4 * interval_size:.0f}万人'},
    {'min': min_population + 4 * interval_size, 'max': min_population + 5 * interval_size, 'label': f'{min_population + 4 * interval_size:.0f}-{min_population + 5 * interval_size:.0f}万人'},
    {'min': min_population + 5 * interval_size, 'label': f'{min_population + 5 * interval_size:.0f}以上万人'}
]

''' 
全局设置
'''
m1.set_global_opts(
             title_opts=opts.TitleOpts('第七次人口普查各省市人口分布'),#设置图标题
            visualmap_opts=opts.VisualMapOpts(is_piecewise=True,pieces=pieces))#热力图相关设置
m1.render_notebook()

结果展示

如上,直接在notbook中展示地图数据。如果想保存成html文件,只需要把render_notebook()函数,换成render()即可。


欢迎关注我的公众号“AI拾贝”,原创技术文章第一时间推送。后台发送”人口“,自动回复源码和数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值