pyecharts绘制地图可视化
pyecharts:官方文档
我们这里使用pyecharts模块进行绘图。
pyecharts 项目包含了一系列的地理地图数据,这些数据或者已经内置,或者需要额外安装和加载,我们需要下载下面六个包。
选择自己需要的安装 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 pip install echarts-united-kingdom-pypkg
pyecharts中Geo表达和城市关联的数据,Map表达和国家和省份关联的数据。
世界地图
from pyecharts import Map, Geo
# 世界地图数据
value = [95.1, 23.2, 43.3, 66.4, 88.5]
attr= ["China", "Canada", "Brazil", "Russia", "United States"]
map0 = Map("世界地图示例", width=1200, height=600)
map0.add("世界地图", attr, value, maptype="world", is_visualmap=True, visual_text_color='#000')
map0.render(path="世界地图.html")

中国地图
from pyecharts import Map, Geo
# 中国地图
province_distribution = {'河南': 45.23, '北京': 37.56, '河北': 21, '辽宁': 12, '江西': 6, '上海': 20, '安徽': 10, '江苏': 16, '湖南': 9,
'浙江': 13, '海南': 2, '广东': 22, '湖北': 8, '黑龙江': 11, '澳门': 1, '陕西': 11, '四川': 7, '内蒙古': 3, '重庆': 3,
'云南': 6, '贵州': 2, '吉林': 3, '山西': 12, '山东': 11, '福建': 4, '青海': 1, '舵主科技,质量保证': 1, '天津': 1,
'其他': 1}
provice = list(province_distribution.keys())
values = list(province_distribution.values())
map = Map("中国地图",'中国地图', width=1200, height=600)
map.add("", provice, values, visual_range=[0, 50], maptype='china', is_visualmap=True,
visual_text_color='#000')
map.show_config()
map.render(path="中国地图.html")

省份地图
from pyecharts import Map, Geo
# 城市 -- 指定省的城市 xx市
city = ['郑州市', '安阳市', '洛阳市', '濮阳市', '南阳市', '开封市', '商丘市', '信阳市', '新乡市']
values2 = [1.07, 3.85, 6.38, 8.21, 2.53, 4.37, 9.38, 4.29, 6.1]
map2 = Map("河南地图",'河南', width=1200, height=600)
map2.add('河南', city, values2, visual_range=[1, 10], maptype='河南', is_visualmap=True, visual_text_color='#000')
map2.show_config()
map2.render(path="河南地图.html")

市区地图
from pyecharts import Map, Geo
# 区县 -- 具体城市内的区县 xx县
quxian = ['夏邑县', '民权县', '梁园区', '睢阳区', '柘城县', '宁陵县']
values3 = [3, 5, 7, 8, 2, 4]
map3 = Map("商丘地图",'商丘', width=1200, height=600)
map3.add("商丘", quxian, values3, visual_range=[1, 10], maptype='商丘', is_visualmap=True,
visual_text_color='#000')
map3.render(path="商丘地图.html")

热力图
from pyecharts import Map, Geo
data = [
("海门", 9), ("鄂尔多斯", 12), ("招远", 12), ("舟山", 12), ("齐齐哈尔", 14), ("盐城", 15),
("赤峰", 16), ("青岛", 18), ("乳山", 18), ("金昌", 19), ("泉州", 21), ("莱西", 21),
("日照", 21), ("胶南", 22), ("南通", 23), ("拉萨", 24), ("云浮", 24), ("梅州", 25)]
attr, value = Geo.cast(data)
geo = Geo("全国主要城市空气质量热力图", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600,
background_color='#404a59')
geo.add("空气质量热力图", attr, value, visual_range=[0, 25], type='heatmap', visual_text_color="#fff", symbol_size=15,
is_visualmap=True, is_roam=False)
geo.show_config()
geo.render(path="空气质量热力图.html")

from pyecharts import Map, Geo
indexs = ['上海', '北京', '合肥', '哈尔滨', '广州', '成都', '无锡', '杭州', '武汉', '深圳', '西安', '郑州', '重庆', '长沙']
values = [4.07, 1.85, 4.38, 2.21, 3.53, 4.37, 1.38, 4.29, 4.1, 1.31, 3.92, 4.47, 2.40, 3.60]
geo = Geo("全国主要城市空气质量评分", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600,
background_color='#404a59')
# type="effectScatter", is_random=True, effect_scale=5 使点具有发散性
geo.add("空气质量评分", indexs, values, type="effectScatter", is_random=True, effect_scale=5, visual_range=[0, 5],
visual_text_color="#fff", symbol_size=15, is_visualmap=True, is_roam=False)
geo.show_config()
geo.render(path="空气质量评分.html")

from pyecharts import Map, Geo
data = [
("海门", 9), ("鄂尔多斯", 12), ("招远", 12), ("舟山", 12), ("齐齐哈尔", 14), ("盐城", 15),
("赤峰", 16), ("青岛", 18), ("乳山", 18), ("金昌", 19), ("泉州", 21), ("莱西", 21),
("日照", 21), ("胶南", 22), ("南通", 23), ("拉萨", 24), ("云浮", 24), ("梅州", 25)]
attr, value = Geo.cast(data)
geo = Geo("全国主要城市空气质量热力图", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600,
background_color='#404a59')
geo.add("空气质量热力图", attr, value, visual_range=[0, 25], type='scatter', visual_text_color="#fff", symbol_size=15,
is_visualmap=True, is_roam=False)
geo.show_config()
geo.render(path="质量热力图.html")

示例:获取冠状病毒感染数据并可视化
import urllib
import urllib.request
import json
import os
import prettytable as pt
from pyecharts import Map, Geo
class Searchdata(object):
def __init__(self,url):
self.url = url
self.china_list = {}
self.china_data = {}
self.province_list = {}
self.province_data = {}
def get_data(self):
try:
data = urllib.request.urlopen(self.url)
data = json.loads(data.read())
self.save(data)
return data
except:
print("请求数据出错!")
def is_exist(self):
for i in os.listdir(os.getcwd()):
if i == "data.txt":
return 1
return 0
def save(self,data):
if self.is_exist() == 0:
with open("data.txt",'w') as fp:
fp.write(str(data))
def get_china(self,data):
data = data['data']
self.china_data['total'] = data['gntotal']
self.china_data['deathNum'] = data['deathtotal']
self.china_data['susNum'] = data['sustotal']
self.china_data['cureNum'] = data['curetotal']
for i in data['list']:
dic ={}
dic['total'] = i['value']
dic['deathNum'] = i['deathNum']
dic['susNum'] = i['susNum']
dic['cureNum'] = i['cureNum']
self.china_list[i['name']] = dic
def get_province(self,data):
data = data['data']
for i in data['list']:
if i['name'] == '湖北':
self.province_data['total'] = i['value']
self.province_data['deathNum'] = i['deathNum']
self.province_data['susNum'] = i['susNum']
self.province_data['cureNum'] = i['cureNum']
for temp in i['city']:
dic = {}
dic['total'] = temp['conNum']
dic['deathNum'] = temp['deathNum']
dic['susNum'] = temp['susNum']
dic['cureNum'] = temp['cureNum']
self.province_list[temp['name']] = dic
return
def get_sheet1(self):
self.tb = pt.PrettyTable()
self.tb.field_names = ["省份", "总数", "死亡", "疑似", "治愈"]
for k, v in self.china_list.items():
self.tb.add_row([k, v['total'], v['deathNum'], v['susNum'],v['cureNum']])
self.tb.add_row(['合计', self.china_data['total'],self.china_data['deathNum'], self.china_data['susNum'], self.china_data['cureNum']])
print(self.tb)
def get_sheet2(self):
self.tb = pt.PrettyTable()
self.tb.field_names = ["地级市", "总数", "死亡", "疑似", "治愈"]
for k, v in self.province_list.items():
self.tb.add_row([k, v['total'], v['deathNum'], v['susNum'], v['cureNum']])
self.tb.add_row(['合计', self.province_data['total'], self.province_data['deathNum'],
self.province_data['susNum'], self.province_data['cureNum']])
print(self.tb)
def get_graph1(self):
provice = list(self.china_list.keys())
values = []
for k, v in self.china_list.items():
values.append(v['total'])
# 中国地图
map = Map("中国地图", '中国地图', width=1200, height=600)
map.add("", provice, values, visual_range=[0, 20000], maptype='china', is_visualmap=True,
visual_text_color='#000')
map.show_config()
map.render(path="地图.html")
def get_graph2(self):
city = list(self.province_list.keys())
new_city = []
for str in city:
if len(str) == 2:
str = str+"市"
new_city.append(str)
elif len(str) == 3:
str = "恩施土家族苗族自治州"
new_city.append(str)
else:
new_city.append(str)
values = []
for k, v in self.province_list.items():
values.append(v['total'])
map2 = Map("湖北地图", '湖北', width=1200, height=600)
map2.add('', new_city, values, visual_range=[0,10000], maptype='湖北', is_visualmap=True, visual_text_color='#000')
map2.show_config()
map2.render(path="湖北地图.html")
Searchtool =Searchdata('http://43.250.238.179:9090/showData')
data = Searchtool.get_data()
Searchtool.get_province(data)
Searchtool.get_sheet2()
Searchtool.get_graph2()


refer:
http://pyecharts.herokuapp.com/
https://05x-docs.pyecharts.org/#/
pyecharts绘制地图可视化的更多相关文章
- pyecharts绘制地图
python 绘制地图 环境准备 1.1 安装必备绘画库 亲身体验,最新版的pyecharts使用不来,通过百度寻得的教学推荐版本 0.1.9.4 可以绘制完成世界地图,国家地图以及市级地图,但是不能 ...
- 厌倦了excel绘制地图的繁琐操作,来看看这款可视化地图神器!
在现代生活中,地图无论对于社会主义建设.国防.运输以至旅行都是不可缺少的.要学会正确地使用地图,必须学会如何绘制地图. 最近我发现了一款好用的可视化地图神器,比excel做地图可视化好一万倍!其实呢, ...
- 【实战】通过Python实现疫情地图可视化
目录 一. json模块 二.通过Python实现疫情地图可视化 2.将json格式的数据保存到Excel 3.应用pyecharts进行数据可视化 一. json模块 JSON(JavaScript ...
- 使用EXCEL绘制三维地图(超简单的五分钟绘制地图方法,妈妈再也不用担心我不会画地图啦~)
博主为从区域规划转行地图学的小学渣一枚,最近处理数据希望对结果进行三维可视化,意外发现从小用到大的EXCEL可以绘制地图且功能非常强大,在这里做一下简单介绍,希望可以给看官提供些许帮助.那下面就开始吧 ...
- vue地图可视化 ArcGIS篇
ArcGIS for javascript开发心得 本次实例中采用ArcGIS for javascript3.24版本,由于版本3与4在API等存在较大区别,就不一一列举,详细区别看官方解释arcg ...
- 三维GIS引擎地图可视化渲染方案设计
1.GIS地图可视化流程 GIS地图可视化就是将空间数据转化为地图数据再进行交互处理的方法,下图一展示了地图可视化的可编程渲染的典型管道,原始空间数据必须处理为图形API支持基础图元用以地图渲染.下图 ...
- twoway 系列命令绘制地图
twoway 系列命令绘制地图 ❝ 在谈到用stata绘制地图时,很多人首先想到的是spmap命令.其实,最常见的twoway系列命令就可以完成我们的大多数绘图需求. 对于spmap命令的使用,在线资 ...
- Python数据分析实战:使用pyecharts进行数据可视化
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:刘早起 开始使用 基本套路就是先创建一个你需要的空图层,然后使用.s ...
- 使用ArcGIS API for Silverlight + Visifire绘制地图统计图
原文:使用ArcGIS API for Silverlight + Visifire绘制地图统计图 最近把很久之前做的统计图又拿出来重新做了一遍,感觉很多时候不复习,不记录就真的忘了,时间是最好的稀释 ...
随机推荐
- 【蓝桥】第八届C语言C组第7题 Excel地址(进制变形题,stack()简单使用)转载
标题: Excel地址 Excel单元格的地址表示很有趣,它使用字母来表示列号. 比如, A表示第1列, B表示第2列, Z表示第26列, AA表示第27列, AB表示第28列, BA表示第53列, ...
- Day6 - G - 立方体大作战tet HYSBZ - 1106
一个叫做立方体大作战的游戏风靡整个Byteotia.这个游戏的规则是相当复杂的,所以我们只介绍他的简单规则:给定玩家一个有2n个元素的栈,元素一个叠一个地放置.这些元素拥有n个不同的编号,每个编号正好 ...
- UVA - 10817 Headmaster's Headache (状压dp+记忆化搜索)
题意:有M个已聘教师,N个候选老师,S个科目,已知每个老师的雇佣费和可教科目,已聘老师必须雇佣,要求每个科目至少两个老师教的情况下,最少的雇佣费用. 分析: 1.为让雇佣费尽可能少,雇佣的老师应教他所 ...
- Loadrunner11的关联问题 《转载》
Loadrunner11的关联问题 链接:http://www.51testing.com/html/15/523415-821644.html
- spring boot 使用swagger
在pom.xml中添加maven依赖 <dependency> <groupId>io.springfox</groupId> <artifactId> ...
- 小程序填坑:2018最新getPhoneNumber功能详解
本篇博客主要详解getPhoneNumber组件的功能,填补网上那些到处是漏洞的博客.加上小程序官方本身也是满满的漏洞. 惯例先上总纲: ##主要内容 1.前端页面组件书写 2.JS内组件用法 3.接 ...
- bzoj 1912: [Apio2010]patrol 巡逻
呵呵呵呵呵呵,自己画图,大概半个小时,觉的连上边会成环(是不是该交仙人掌了??)然后求环不重合部分最大就好了, 结果写了一坨DP,最后写不下去了,再次扒了题解. 发现我真的是个sb. k==1,直接是 ...
- VS Code 单文件、多文件(工程) 配置文件
针对于单文件编译运行,需要在代码文件夹下建立子文件夹 .vscode ,并放置三个文件 1:c_cpp_properties.json,注意更改7.8.11行的路径 { "configura ...
- 【WPF学习】第二十四章 基于范围的控件
WPF提供了三个使用范围概念的控件.这些控件使用在特定最小值和最大值之间的数值.这些控件——ScrollBar.ProgressBar以及Slider——都继承自RangeBase类(该类又继承自Co ...
- 自己安装windows版本的Flink
参照 https://blog.csdn.net/clj198606061111/article/details/99694033 我自己做一遍 找到对应的网址 https://flink.apach ...