pyecharts经纬度地图批量标点,用pyecharts画中国地图
一直很好奇中国的人口分布和迁移情况,所以想用Python分析一下。由于中国有很多省份,在地图上显示数据会更清晰,所以本文使用Python中的pyecharts库来显示人口分布和迁移情况。
pyecharts的地图数据主要来自两个模块,一个是Map,另一个是Geo。地图模块主要显示“世界”、“国家”、“省”、“县市”等行政地图,Geo主要显示热图等功能地图。本文致力于让大家学会使用Python在地图上显示数据。
I .安装pyecharts库
首先,使用以下语句在cmd中安装pyecharts库:
3 pip3安装pyecharts如果安装成功,会出现以下结果:
二。地理和地图模块的主要功能
[1] render():渲染后的图表由render函数输出为html文件,输出地址参数可以用圆括号传递,将html文件保存到用户定义的位置。
[2] add_schema():控制地图类型,设置背景和边框颜色等。
[3] add():添加图表名称、引入数据、选择图表类型等。
[4] set_series_opts():系列配置项,可以配置文本样式、标签样式等。
[5] set_gloal_opts():全局配置项,可以配置标题、动画、颜色等。
[6] render_notebook():在笔记本中显示完成的图表。
[7] add_coordinate():添加一个坐标点。
[8] add_coordinate_json():添加多个坐标点作为json。
[9] get_coordinate():根据位置查询对应的坐标。
3.用Geo模块绘制人口分布图
因为各省人口不均匀,所以可以在地图上显示各省人口,分析全国人口相对多和少的省份。
1导入中国各省人口数据
首先导入中国各省的人口数据,代码如下:
Osimport panda as PD #导入库os.chdir(rF:微信官方账号12。人口数据)#设置文件数据存储目录date=pd.read_csv(各省人口。csv ,编码=GBK)#导入数据注:数据来源于《中国统计年鉴》。如果您需要本文中的数据来实现此代码,请参考。
显示前几行数据,如下所示:
2.在地图上显示各省人口数据的波纹图。
根据省份和人口数据,将图表类型设置为chart type。EFFECT_SCATTER,并生成波纹图。具体代码如下:
从pyecharts.charts导入地图从pyecharts.charts导入地理从pyecharts导入选项作为opts从pyecharts.globals导入ChartType#导入库geo=geo()geo . add _ schema(map type= China ,item style _ opts=opts . item style opts(color= r ,border _ color= # ffffff )#设置地图类型、背景和边框颜色geo.add(geo ),日期[[省,人口(万人)]。values.tolist(),type _=charttype . effect _ scatter)#添加图表类型,geo . set _ series _ opts(label _ opts=opts . label opts(is _ show=false))#系列配置项如传入数据,忽略标签geo . set _ global _ opts(visual map _ opts=opts . visual mapopts(is _ piece=true,pieces=[{min: 0, max: 1000, label : 0-1000万, color :{ min :1001, max {min: 3001, max: 5000, label: 3001- Max: 8000, label : 5001-8000万, color: yellow},{min: 8001, max: 12000, label : 8001-12000万, color Title _ opts=opts . Title pts(Title=中国各省人口分布),)#全局配置项,设置动画,颜色,标题等。 geo . render( population of all provinces 3 . html )#将完成的图表输出为html文件以获得结果:
图1中国各省人口分布(万人)
如果想在notbook中直接显示地图数据,可以将geo.render()函数改为geo.render_notebook()。从图1可以看出,如果把中国的地图看做一只公鸡,人口比较多的地方主要集中在鸡胸和鸡肚区域。
3在地图上显示各省人口数据热图。
根据省份和人口数据,在地图上显示相应的数据,设置图表类型为chart type。热图,并生成热图。具体代码如下:
#人口分布热图进口OS进口熊猫作为PD从pye图。图表从pye图表导入地图。图表从pye图表导入地理从pye图表导入选项作为选项。globalsinport charttype #导入库os.chdir(rF:微信官方账号12。人口数据)#设置文件数据存储目录date=pd.read_csv(各省人口。 csv ,编码=GBK)#导入数据geo=geo()geo.add _ schema(map type=中国,item style _ opts=opts . itemstyleopts(color= r ,border _ color= # ffffff ),Label _ opts=opts . labe opts(is _ show=true))#设置地图类型,背景和边框颜色geo . add(),日期[[省,人口(万)]。values.tolist(),type _=charttype.heatmap) #传入数据等。geo . Set _ series _ opts(label _ opts=opts . labe opts(is _ show=true))# series配置项,忽略标签geo . Set _ global _ opts(visual map _ opts=opts . visual mapopts()、Title _ opts=opts . Title pts(Title=中国各省人口分布热图,subtitle=数据来源:中国统计年鉴(万人),pos _ right= center ,pos _ top= 5% )#全局配置项,设置动画geo.render(各省人口热图. html) #将完成的图表输出为html )# file # geo . render _ notebook()#显示地图以获得结果:
图2中国各省人口分布热图
4.用地图模块绘制人口分布图。
地图模块用于绘制人口分布图。代码类似于Geo模块的代码。具体代码如下:
#地图地图导入操作系统从pye图表导入熊猫作为PD。图表从pye图表导入地图。图表从pye图表导入地理从pye图表导入选项作为选项。例如,Los导入图表类型os。chdir (r f: 微信官方账号12。人口数据)date=pd.read_csv(各省人口。csv ,encoding= gbk )map=map()map . add( ),date [[省,人口]]。values.tolist(), China )map . set _ global _ opts(visual map _ opts=opts . visualmapopts(is _ piece=true,pieces=[{min: 0, max :11)Label : 0-1000万, color: white},{min: 1001, max: 3000, Label : 10-3000万, color :青色 },{min Color :绿色 },{min: 5001, max :80000Title opts (title=中国各省人口分布,subtitle=数据来源:中国统计年鉴(万人),pos _ right= center ,pos _ top= 5% )#全球
图3中国各省人口分布
动词(verb的缩写)中国各省流入广东省人口的动态轨迹
1导入中国各省人口迁移数据。首先,导入中国各省人口迁移数据。代码如下:
Osimport panda as PD #导入库os.chdir(rF:微信官方账号12。人口数据)#设置文件数据存储目录date=pd.read_csv(迁移数据。csv ,编码=GBK)#导入数据注:数据来自《中国统计年鉴》。如果您需要本文中的数据来实现此代码,请参考。
显示前几行数据,如下所示:
2.画出人口流入广东的动态轨迹。
因为中国人口迁移的数据很多,把所有的数据都画在地图上会比较混乱。因此,本文选取流入广东的人口数据进行绘制和展示,具体编码如下:
# mdate=date[date[ count ]100000]sdate=date[date[ to ]=广东] #选择的人口流入地是广州CurrentConfig。ONLINE_HOST=F:/微信官方账号/12。人口数据/pyecharts-assets-master/assets #设置pye charts-assets-master下载路径C=(geo()。Add _ schema (maptype= China ,item style _ opts=opts . itemstyleopts(color= # 323 c48 ,border _ color= white ),Label _ opts=opts . labe opts(is _ show=true))#设置地图类型、背景和边框颜色。Add(,sdate [[from , count ]]]。values.tolist(),type _=charttype.effect _ scatter,Color=white ,)#添加图表类型,点的颜色等。Add(,sdate [[from , to ]]]。values.tolist(),type _=charttype.lines,effect_opts=opts。EffectOpts( symbol=SymbolType。ARROW,symbol_size=6,color=white ),linestyle_opts=opts。LineStyleOpts(curve=0.2),#轨迹曲线曲率)#添加图表类型、符号类型、大小、颜色等。set _ series _ opts(label _ opts=opts . label opts(is _ show=false))#系列配置项,忽略标签。set _ global _ opts(visual map _ opts=opts . visualmapopts(is _ piece=true,pieces=[{min: 0, max: 1000, label: 0-1000 , color: white {min:1001, max:5000, label:1001-5000 , color:cyan},{min:5001, max:10000, label:5001-10000 , colortitle opts (title=广东人口分布,pos _ right= center ,pos _ top设置动画,颜色,标题等。render(流入广东人口分布. html) #将完成的图表输出为html文件)得到结果:
图4流入广东的人口分布
从图4可以看出,流入广东的人口最多的省份是广西、湖南、四川,流入广东的人口相对较多的省份也与其地理位置有一定的关系。到目前为止,用Python中的Geo和Map模块绘图已经讲解得很充分了,有兴趣的同学可以自己体会一下。
您可能对以下内容感兴趣:
用Python画皮卡丘
用Python绘制word云图
Python人脸识别——我眼里只有你
Python绘制了一个漂亮的天空图(漂亮的背景)
使用Python neo4j中的py2neo库进行二次操作,建立关联图。
Python浪漫告白源码合集(爱情,玫瑰,照片墙,星空下的告白)
长按(扫描)识别上方二维码了解更多Python和建模知识,让你的学习和工作更加出彩。