python地图数据可视化: pyecharts Geo实现散点图和热力图

最近需要将热门景点在地图上表示出来,因此开始接触pyecharts的地图可视化内容。首先要说一下pyecharts版本,目前有 v0.5.X 和 v1 两个大版本,而且这两个版本间不兼容。今天主要介绍如何利用 v1 版本实现地图+散点图和地图+热力图,用到的函数是Geo。详情可参考文档pyecharts.org。

安装

地图文件被分成了5个 Python 包,分别为:
全球国家、中国省级、中国市级、中国县级和其他地图。直接用pip安装:

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

主要方法和参数

.set_global_opts()用于设置全局配置项
.add_schema(maptype)用于添加地图
.add(’’,[attr,value],symbol_size)用于将数据添加到地图上,其中 attr:标签名称;value:数值;symbol_size:散点大小
.add_coordinate()用于添加坐标点

地图数据可视化

数据

我用的是从携程爬取的热门景点数据,用pandas读取。

import pandas as pd

path='sight.xlsx'
xls_file=pd.ExcelFile(path)
sheet_names = xls_file.sheet_names

df=pd.DataFrame()
for name in sheet_names:
    print(name)
    _df=pd.read_excel(path,sheetname=name,encoding='utf-8')
    df=df.append(_df)
df.head()

geo_sight_coord={df.iloc[i]['景点']:[df.iloc[i]['GPS经度'],df.iloc[i]['GPS纬度']] for i in range(len(df))}
data_pair=[(df.iloc[i]['景点'],df.iloc[i]['评分']) for i in range(len(df))]

地图+散点图

开始数据可视化

geo=Geo(init_opts=opts.InitOpts(theme=ThemeType.DARK))
geo.add_schema(maptype='浙江')
for key,value in geo_sight_coord.items():
	geo.add_coordinate(key,value[0],value[1]) 
geo.add('',data_pair,symbol_size=10,itemstyle_opts=opts.ItemStyleOpts(color="blue"))
# 设置样式
geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False),type='effectScatter')
#  is_piecewise 是否自定义分段, 变为true 才能生效
geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(),title_opts=opts.TitleOpts(title="游客最喜欢的景点分布"))
geo.render_notebook()

python地图数据可视化: pyecharts Geo实现散点图和热力图_第1张图片

地图+热力图

将type换成heatmap,得到热力图。

geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False),type='heatmap')

python地图数据可视化: pyecharts Geo实现散点图和热力图_第2张图片

你可能感兴趣的:(Python可视化)