Pyecharts在手,天下我有(地图篇)

Pyecharts在手,天下我有(地图篇)_第1张图片
大家都知道python各种的好,但是呢在可视化方面还是有所欠缺的,而今天的主角pyecharts就很好的弥补了这一短板,今天先简单的介绍一下如何利用pyecharts使得我们的数据可视化效果更加好。小文汇总了一下,利用pyecharts我们可以作图的类型分别为:Bar(柱状图/条形图),Bar3D(3D 柱状图),Boxplot(箱形图),EffectScatter(带有涟漪特效动画的散点图),Funnel(漏斗图),Gauge(仪表盘),Geo(地理坐标系),Graph(关系图),HeatMap(热力图),Kline(K线图),Line(折线/面积图),Line3D(3D 折线图),Liquid(水球图),Map(地图),Parallel(平行坐标系)Pie(饼图),Polar(极坐标系),Radar(雷达图),Sankey(桑基图),Scatter(散点图),Scatter3D(3D 散点图),ThemeRiver(主题河流图),WordCloud(词云图)。

而今天我们主要介绍的是地图+散点图,地图+热力图,应用到的函数是Geo,主要参数说明如下:

attr:标签名称(在例子里面就是地点)
value:数值(在例子里就是流动人员)
visual_range:可视化的数值范围
symbol_size:散点的大小
visual_text_color:标签颜色
is_piecewise :颜色是否分段显示(False为渐变,True为分段)
is_visualmap:是否映射(数量与颜色深浅是否挂钩)
maptype :地图类型,可以是中国地图,省地图,市地图等等
visual_split_number :可视化数值分组
geo_cities_coords:自定义的经纬度
参数介绍完了,那么我们进入主题。首先涉及到地图,那么肯定是得先有地图是吧?所以呢需要地图的朋友们一个个安装吧!不然画出来的图只有散点,没有地图,或者出现地图显示不全等等问题。

$ pip install echarts-countries-pypkg
$ pip install echarts-china-provinces-pypkg
$ pip install echarts-china-cities-pypkg
$ pip install echarts-china-counties-pypkg
$ pip install echarts-china-misc-pypkg

然后就开始导入数据,处理,可视化了,代码如下:

#加载pyecharts
from pyecharts import Geo,Style
import pandas as pd 

#导入excel表举例
df=pd.read_excel('流动人口.xlsx')     
df.head()

#导入自定义的地点经纬度
geo_cities_coords={df.iloc[i]['地点']:[df.iloc[i]['经度'],df.iloc[i]['纬度']]
                    for i in range(len(df))}   
attr=list(df['地点'])
value=list(df['流动人口']/100000)
style = Style(title_color= "#fff",title_pos = "center",
width = 1200,height = 600,background_color = "#404a59")

#可视化
geo = Geo('东莞各个CGI总用户数分布',**style.init_style)
geo.add("",attr,value,visual_range=[0,100],symbol_size= 5,
        visual_text_color= "#fff",is_piecewise = True,
        is_visualmap= True,maptype = '东莞', visual_split_number= 10,
        geo_cities_coords=geo_cities_coords)

geo.render( '东莞各个CGI总用户数分布.html')

Pyecharts在手,天下我有(地图篇)_第2张图片
当is_piecewise = False:

Pyecharts在手,天下我有(地图篇)_第3张图片
当is_visualmap= False,颜色与点之间不再映射,也就是说每个点的流动人口数量与颜色深浅没有任何关系:
Pyecharts在手,天下我有(地图篇)_第4张图片
当增加一个参数type = ‘heatmap’,就会得到热力图:

style = Style(title_color= "#fff",title_pos = "center",
width = 1200,height = 600,background_color = "#404a59")
geo = Geo('东莞各个CGI总用户数分布',**style.init_style)
geo.add("",attr,value,visual_range=[0,100],
        visual_text_color= "#fff",type = 'heatmap',
        is_visualmap= True,maptype = '东莞',
        geo_cities_coords=geo_cities_coords)

geo.render( '东莞各个CGI总用户数分布.html')

Pyecharts在手,天下我有(地图篇)_第5张图片

你可能感兴趣的:(python)