pyecharts对于经纬度_pyecharts绘制geo地图
pyecharts是一种非常强大的绘图python库,绘制的图形非常好看,并且有代表性,不仅仅是地图,还可以绘制条形图、饼图、词云图等等。
#安装方法
pip install pyecharts#或者使用国内镜像:
pip install pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple
其中涉及的主要是 geo库和 map库,本次主要是分享geo库的一些用法。
它们所依赖的地图包主要有(需要说明的是,并不是所有的城市都能找到,因为名字的修改或者简称会造成错误;此时就需要自己加入相应的城市名和其经纬度地址):
全球国家地图: echarts-countries-pypkg
全球城市地图:echarts-cities-pypkg
中国省级地图: echarts-china-provinces-pypkg
中国市级地图: echarts-china-cities-pypkg
#安装方法
pip install echarts-countries-pypkg
pip install echarts-cities-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
现在进入具体使用阶段:
from pyecharts.faker importFakerfrom pyecharts importoptions as optsfrom pyecharts.charts importGeofrom pyecharts.globals importChartType, SymbolTypeimportpandas as pdimportjson#用于测试的例子,部分取自 Faker ,也就是 from pyecharts.faker import Faker
provinces = ["广东", "北京", "上海", "辽宁", "湖南", "四川", "西藏"]
guangdong_city= ["汕头市", "汕尾市", "揭阳市", "阳江市", "肇庆市", "广州市", "惠州市"]
country= ["China", "Canada", "Brazil", "Russia", "United States", "Africa", "Germany"]
value= [300, 100, 2000, 800, 10000, 400, 5000]
1. 绘制热点图
#热点图
def geo_heatmap(address, value) ->Geo:
aa= [list(z) for z inzip(address, value)]
c=(
Geo()
.add_schema(maptype="china")
.add("省热点图", #图题
aa,
type_=ChartType.HEATMAP, #地图类型
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) #设置是否显示标签
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(max_ = 400), #设置legend显示的最大值
title_opts=opts.TitleOpts(title="Geo-HeatMap"), #左上角标题
)
)returncif __name__ == '__main__':
province_heat=geo_heatmap(provinces, value)
province_heat.render(path="test_heatmap.html") #保存为html文件(网页打开,是动图),也可以保存为 png 等格式,也就是 province_heat.render(path='test_heatmap.png')
2. 路线图
#路线图
def geo_lines() ->Geo:
c=(
Geo()#.add_schema(maptype="china")
.add_schema(maptype="china", itemstyle_opts=opts.ItemStyleOpts(color="#FFD39B", border_color="#111")) #用于修改背景地图的颜色
.add("数量",
[("广州", 100), ("乌鲁木齐", 66), ("济南", 500), ("武汉", 1000)], #参数是由元组项组成的列表
type_=ChartType.EFFECT_SCATTER, #动态热力图
color="blue",
)
.add("流向",
[("广州", "拉萨"), ("乌鲁木齐", "北京"), ("济南", "杭州"), ("武汉", "重庆")], #参数是由元组项组成的列表
type_=ChartType.LINES,
effect_opts=opts.EffectOpts(
symbol=SymbolType.ARROW, symbol_size=10, color="black"
#symbol=SymbolType.ARROW, symbol_size=6, color="blue"
),
linestyle_opts=opts.LineStyleOpts(curve=-0.1), #curve为正时,曲线是凸的;为负时,曲线是凹的
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="Geo-Lines")) #设置标题
)returncif __name__ == '__main__':
city_heat=geo_lines()
city_heat.render(path="test_lines.html")
3. 局部热点图
def geo_guangdong(guangdong_city, value) ->Geo:
c=(
Geo()
.add_schema(maptype="广东") #也可以是其他省,那么对应的城市名也是需要修改的
.add("geo",
[list(z)for z inzip(guangdong_city, value)],
type_=ChartType.HEATMAP,
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(),
title_opts=opts.TitleOpts(title="Geo-广东地图"),
)
)return c
4. 添加一个坐标点或者绘制某一个点(需要该点的经纬度)
查询经纬度位置 (谷歌浏览器打开,在该地址后面,加上你要查询的地址,例如:北京):http://api.map.baidu.com/geocoder?key=f247cdb592eb43ebac6ccd27f796e2d2&output=json&address=
言归正传,进入代码:
def add_adress_one() ->Geo:
c=(
Geo()
.add_schema(maptype="china") #加入自定义的点,格式为
.add_coordinate("测试点", 116.39770014211535, 39.90779994986951) #加入的地址名称,和经度、纬度
#为自定义的点添加属性,名称要一致,例如均为 '测试点'
.add("", data_pair =[("测试点", 100)], symbol_size = 30, large_threshold = 1000, symbol="pin")#.add( #可用于在同一个图上绘制多个图形#"",#data_pair =[("测试点", 100)],#type_=ChartType.EFFECT_SCATTER,#symbol_size=10, point_size = 3,#color="yellow",#)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts( visualmap_opts=opts.VisualMapOpts(max_ = 500),title_opts=opts.TitleOpts(title="加入一个名为测试点的坐标"))
)returncif __name__ == '__main__':
add_one=add_adress_one()
add_one.render(path="test_add_one.html")
5. 一次性加入很多个坐标点,使用json 格式,例如加入三个坐标点,测试点1,测试点2,测试点3
def add_adress_json() ->Geo:#http://api.map.baidu.com/geocoder?key=f247cdb592eb43ebac6ccd27f796e2d2&output=json&address=
test_data_ = [("测试点1", 116.512885, 39.847469), ("测试点2", 125.155373, 42.933308), ("测试点3", 87.416029, 43.477086)]
count= [1000, 2000, 500]
address_=[]
json_data={}for ss inrange(len(test_data_)):
json_data[test_data_[ss][0]]= [test_data_[ss][1], test_data_[ss][2]]
address_.append(test_data_[ss][0])
json_str= json.dumps(json_data, ensure_ascii=False, indent=4)
with open('test_data.json', 'w', encoding='utf-8') as json_file:
json_file.write(json_str)
c=(
Geo()
.add_schema(maptype="world") #可以换成 world,或 china
.add_coordinate_json(json_file='test_data.json') #加入自定义的点
#为自定义的点添加属性
.add("", data_pair =[list(z) for z in zip(address_, count)], symbol_size = 30, large_threshold = 2000, symbol="pin")
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts( visualmap_opts=opts.VisualMapOpts(max_ = 2000),title_opts=opts.TitleOpts(title="json加入多个坐标"))
)returncif __name__ == '__main__':
add_json=add_adress_json()
add_json.render(path="test_json.html")
这个是在国际地图上:
这个是在中国地图上:
6. EFFECT_SCATTER:绘制动态热力图
def geo_heatmap_dynamic() ->Geo:
c=(
Geo()
.add_schema(maptype="china", itemstyle_opts=opts.ItemStyleOpts(color="#eeeeee", border_color="#111"),)
.add("",#[list(z) for z in zip(province_name, province_count)],
[("广州", 100), ("乌鲁木齐", 66), ("济南", 500), ("武汉", 1000)],
type_=ChartType.EFFECT_SCATTER,
symbol_size= 15 #标记大小
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(is_piecewise=True, max_ = 1000), #is_piecewise=True 表示切分legend范围
title_opts=opts.TitleOpts(title="")
)
)return c
上面的一些公共参数:
symbol_size = 15 :表示标记大小为15。
.set_series_opts(label_opts=opts.LabelOpts(is_show=False)):用于设置是否显示标签。
.set_global_opts(visualmap_opts=opts.VisualMapOpts(is_piecewise=True, max_ = 1000), title_opts=opts.TitleOpts(title=""):is_piecewise=True表示切分legend,max_表示legend的最大值,title设置左上角标题。
type_=ChartType.HEATMAP 等用于设置地图类型。
参考:
pyecharts对于经纬度_pyecharts绘制geo地图相关推荐
- 使用Echarts绘制geo地图(案例)
使用Echarts绘制geo地图(案例) 项目使用@vue/cli 4.5.13以及echarts版本为5.1.2. 需求:在省份地图上,将数据进行分段映射.如图: 首先下载geojson数据 链接: ...
- 使用echarts绘制geo地图
我这里实现的是河南省的地图 点击要下钻的区域展示相应区域的地图,点击地图外部空白处返回上一级. 一.准备geojson数据 网址:DataV.GeoAtlas地理小工具系列 下载需要的geojson ...
- vue中用echarts 绘制geo 中国地图
前言 由于5.X版本的echarts没有了map包,因此我先安装了5.1.1版本,再安装了4.9版本,并将4.9版本中的map包复制到了5.1.1版本里. 绘制效果如下: 1.省份根据数据值,展示不同 ...
- echarts geo地图示例_干货|Pyecharts绘制好看的交互式地图教程
说到使用Python来进行地图的可视化那就一定少不了Pyecharts的身影,本文小编就对Pyecharts可实现的地图可视化进行一番探究,看看其出来的效果如何 1 Pyecharts-Map 首先要 ...
- pyecharts geo绘制地理信息地图
简介 要了解pyecharts,必须先理解echarts的概念.echarts是一个由百度开源的商业级数据图表,它是一个纯JavaScript的图表库,可以为用户提供直观生动,可交互,可高度个性化定制 ...
- Pyecharts Geo绘制可视化地图并展示坐标位置
文章目录 Pyecharts Geo绘制可视化地图 安装需要的模块 绘制出地图 生成空白地图 修改参数,调整地图输出格式 地图上展示坐标位置 输入坐标点 将坐标点添加入系列并配置系列 完整代码 参考文 ...
- Python应用实战-如何用Pyecharts绘制可视化地图?
Pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Pyt ...
- 【应用】Python利用高德地图经纬度数据绘制定位
[应用]Python利用高德地图经纬度数据绘制定位 一. 背景 二. 获取API 1. 注册高德开放平台个人开发者 2. 获取key 三. 具体步骤 1. 库的导入 2. 根据地址获取经纬度 3. 绘 ...
- pyecharts包绘制Map地图(笔记)
最近写文章,需要绘制地图,开始想用Tableau做,但是Tableau绘制某些地图不太方便,需要边界经纬度,于是找到了pyecharts 由于pyecharts版本更新,以前的代码不兼容新版本 pye ...
- echarts geo地图示例_用Python,炫酷地图轻松绘制,一起来学习吧
转自:数据分析1480 地图可视化是一种非常直观的数据分析结果展现形式,python 有很多可视化库可以实现,pyecharts 就是很多 python 爱好者喜爱的实现地图可视化方法之一.不可否认, ...
最新文章
- 如何按键对字典排序?
- es6模块与 commonJS规范的区别
- Unity中调用手机中的粘贴功能
- linux8安装bbr_CentOS 7安装4.9内核开启BBR
- 突发!贾跃亭或将申请个人破产重组
- 热水器多长时间清理一次比较好?该怎么清理?
- linux acl源码,acl框架库下载
- 80X86 汇编指令符号大全
- css表格一行删除线,EXCEL电子表格一行中间画一条删除线怎么画/excel表格如何划掉数据...
- steam显示不能连接网络连接服务器,steam请检查网络连接
- 常见色彩表(RGB)
- 计算机图形学一:变换矩阵-Transformation Matrices
- 我的学习工作经历,一个园林专业中专毕业生的IT之路 学习编程 创业
- 10首现代诗歌欣赏:什么是孤独
- 用python开发一款云笔记_Python成为专业人士笔记–os模块
- java实现lbs_Java总结篇系列:Java泛型
- vim tutorial 101 hacks(一)
- mixly编程怎样音乐_使用mixly和Arduino结合蜂鸣器播放音乐
- 滴滴开源小程序框架 Mpx
- 6 Vue 原理(SY)
热门文章
- 用计算机怎么刷试听量,QQ音乐怎么刷播放次数,快速增加播放量
- Leetcode PHP题解D1:宝石与石头
- 手机wifi的mac地址是什么??
- 【食品加工技术】第二章 果蔬加工技术 笔记
- win10镜像无法再此计算机上运行,Win10镜像无法安装提示“运行此工具时出现问题”的两种解决方案...
- c++虚指针及相应对象的数据结构
- spring mvc 404 报错记录
- sql语句之delete
- 企业要如何利用360评估法做好人才盘点?
- C语言并集编程,c语言求并集和交集的关键代码,谢谢