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地图相关推荐

  1. 使用Echarts绘制geo地图(案例)

    使用Echarts绘制geo地图(案例) 项目使用@vue/cli 4.5.13以及echarts版本为5.1.2. 需求:在省份地图上,将数据进行分段映射.如图: 首先下载geojson数据 链接: ...

  2. 使用echarts绘制geo地图

    我这里实现的是河南省的地图  点击要下钻的区域展示相应区域的地图,点击地图外部空白处返回上一级. 一.准备geojson数据 网址:DataV.GeoAtlas地理小工具系列 下载需要的geojson ...

  3. vue中用echarts 绘制geo 中国地图

    前言 由于5.X版本的echarts没有了map包,因此我先安装了5.1.1版本,再安装了4.9版本,并将4.9版本中的map包复制到了5.1.1版本里. 绘制效果如下: 1.省份根据数据值,展示不同 ...

  4. echarts geo地图示例_干货|Pyecharts绘制好看的交互式地图教程

    说到使用Python来进行地图的可视化那就一定少不了Pyecharts的身影,本文小编就对Pyecharts可实现的地图可视化进行一番探究,看看其出来的效果如何 1 Pyecharts-Map 首先要 ...

  5. pyecharts geo绘制地理信息地图

    简介 要了解pyecharts,必须先理解echarts的概念.echarts是一个由百度开源的商业级数据图表,它是一个纯JavaScript的图表库,可以为用户提供直观生动,可交互,可高度个性化定制 ...

  6. Pyecharts Geo绘制可视化地图并展示坐标位置

    文章目录 Pyecharts Geo绘制可视化地图 安装需要的模块 绘制出地图 生成空白地图 修改参数,调整地图输出格式 地图上展示坐标位置 输入坐标点 将坐标点添加入系列并配置系列 完整代码 参考文 ...

  7. Python应用实战-如何用Pyecharts绘制可视化地图?

    Pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Pyt ...

  8. 【应用】Python利用高德地图经纬度数据绘制定位

    [应用]Python利用高德地图经纬度数据绘制定位 一. 背景 二. 获取API 1. 注册高德开放平台个人开发者 2. 获取key 三. 具体步骤 1. 库的导入 2. 根据地址获取经纬度 3. 绘 ...

  9. pyecharts包绘制Map地图(笔记)

    最近写文章,需要绘制地图,开始想用Tableau做,但是Tableau绘制某些地图不太方便,需要边界经纬度,于是找到了pyecharts 由于pyecharts版本更新,以前的代码不兼容新版本 pye ...

  10. echarts geo地图示例_用Python,炫酷地图轻松绘制,一起来学习吧

    转自:数据分析1480 地图可视化是一种非常直观的数据分析结果展现形式,python 有很多可视化库可以实现,pyecharts 就是很多 python 爱好者喜爱的实现地图可视化方法之一.不可否认, ...

最新文章

  1. 如何按键对字典排序?
  2. es6模块与 commonJS规范的区别
  3. Unity中调用手机中的粘贴功能
  4. linux8安装bbr_CentOS 7安装4.9内核开启BBR
  5. 突发!贾跃亭或将申请个人破产重组
  6. 热水器多长时间清理一次比较好?该怎么清理?
  7. linux acl源码,acl框架库下载
  8. 80X86 汇编指令符号大全
  9. css表格一行删除线,EXCEL电子表格一行中间画一条删除线怎么画/excel表格如何划掉数据...
  10. steam显示不能连接网络连接服务器,steam请检查网络连接
  11. 常见色彩表(RGB)
  12. 计算机图形学一:变换矩阵-Transformation Matrices
  13. 我的学习工作经历,一个园林专业中专毕业生的IT之路 学习编程 创业
  14. 10首现代诗歌欣赏:什么是孤独
  15. 用python开发一款云笔记_Python成为专业人士笔记–os模块
  16. java实现lbs_Java总结篇系列:Java泛型
  17. vim tutorial 101 hacks(一)
  18. mixly编程怎样音乐_使用mixly和Arduino结合蜂鸣器播放音乐
  19. 滴滴开源小程序框架 Mpx
  20. 6 Vue 原理(SY)

热门文章

  1. 用计算机怎么刷试听量,QQ音乐怎么刷播放次数,快速增加播放量
  2. Leetcode PHP题解D1:宝石与石头
  3. 手机wifi的mac地址是什么??
  4. 【食品加工技术】第二章 果蔬加工技术 笔记
  5. win10镜像无法再此计算机上运行,Win10镜像无法安装提示“运行此工具时出现问题”的两种解决方案...
  6. c++虚指针及相应对象的数据结构
  7. spring mvc 404 报错记录
  8. sql语句之delete
  9. 企业要如何利用360评估法做好人才盘点?
  10. C语言并集编程,c语言求并集和交集的关键代码,谢谢