姓氏人口奔波轨迹可视化

1,455 阅读2分钟

‘杜’姓出自五帝之一——唐尧的裔孙刘累之后,‘杜’姓自形成以来,至先秦时期分布区域已经相当广泛。在百家姓文库上面排名53位,全国人口占比0.42%,这里以‘杜’姓为例,查看人口从出生地到工作地的奔波轨迹。

数据预处理

数据获取

首先提炼出‘杜’姓的数据,数据源可参考上篇文章

data_du=data_01[['姓','户籍所在地_lng','户籍所在地_lat','工作地_市','工作地_区县']][data_01['姓'] == '杜']
data_du=data_du[data_du['工作地_市']!='未识别']
data_du=data_du[data_du['工作地_区县']!='未识别']

data_du.columns=['familyname','birth_lng','birth_lat','work_city','work_district']

writer=pd.ExcelWriter('G:\数据分析资料\*******\中国姓氏排行研究\du.xlsx')
data_du.to_excel(writer,'sheet',index=False)
writer.save()

查看excel数据前20行如下

然后通过geocoding地图工具获取到工作地的经纬度。

合并两表,得到一张出生地,工作地经纬度的表,去除无效数据,制作数据透视表,计算相同出生地,相同工作地人数数量。

导出数据,另存为QGIS可以读取的‘csv’格式文件

轨迹制作

QGIS轨迹数据生成

QGIS导入全国城市分界线地图,设置好颜色,背景,填充,线条等等东西后, 分别用‘出生地经纬度’和‘工作地经纬度’制作两个点图层。

通过lineplotter插件做出出生地与工作地的连线轨迹(lineplotter插件安方法装:标题栏——插件——勾选显示试验性插件——搜索lineplotter——勾选),以‘WGS 84 / UTM zone 48N’为坐标参考系

添加轨迹长度字段

按照长度,将轨迹颜色做渐变处理

数据转换

投影坐标系另存为一个wgs84地理坐标系,然后将count值类型转换为整数

通过转换工具,将QGIS文件数据转换为json数据(注意,数据中不能有空值)

echarts动态轨迹图实现

将上述导出的json数据导入echarts 通过调整js脚本,可以生成不同形态的人口奔波轨迹空间轨迹图,出发点为出生地,终止点为工作地。

地图大致可以看出,杜姓人口除了人烟比较稀少的西北地区和青藏地区以外,在全国分布较为广泛和均匀。其中出生地以河北、河南、湖北、陕西、山东居多,辽宁、四川、甘肃、安徽等地也均有不少。

杜姓人口外出工作地主要以周边地区大城市为主,比如上海、北京、珠江三角区、武汉、西安、成都、重庆、郑州、南京、沈阳等地。

其中上海、北京、珠江三角洲地区吸引了来自全国的杜姓工作者,是杜姓工作者最多的地区。

另外比较有趣的是有不少内地中国人跨越台湾海峡前往台湾宝岛工作。