详解python 利用 pyecharts 画地图(热力图)(世界地图,省市地图,区县地图)、动态流向图

详解python 利用 pyecharts 画地图(热力图)(世界地图,省市地图,区县地图)、动态流向图

温馨提示:本文撰写时未指明一些工具包的版本,大家运行可能会出现一些版本问题,如果遇到问题可以参考本文评论区中各位大神的解决办法!

转载: 详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)

Pyecharts绘制全球流向图

pyecharts中文教程官网

目录

安装对应的python模块

世界地图

中国地图

省市地图

区县地图

热力图

动态流向图

安装对应的python模块

根据 pyecharts使用教程 :

自从 v0.3.2 开始,为了缩减项目本身的体积以及维持 pyecharts 项目的轻量化运行,pyecharts 将不再自带地图 js 文件。如用户需要用到地图图表,可自行安装对应的地图文件包。下面介绍如何安装。

(1)、全球国家地图: echarts-countries-pypkg (1.9MB): 世界地图和 213 个国家,包括中国地图 (2)、中国省级地图: echarts-china-provinces-pypkg (730KB):23 个省,5 个自治区 (3)、中国市级地图: echarts-china-cities-pypkg (3.8MB):370 个中国城市 (4)、中国县区级地图: echarts-china-counties-pypkg (4.1MB):2882 个中国县·区 (5)、中国区域地图: echarts-china-misc-pypkg (148KB):11 个中国区域地图,比如华南、华北

需要这些地图的朋友,可以装 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

pip install echarts-united-kingdom-pypkg

更多的地图数据可查看https://github.com/echarts-maps。

世界地图

from pyecharts import Map

value = [95.1, 23.2, 43.3, 66.4, 88.5]

attr = ["China", "Canada", "Brazil", "Russia", "United States"]

map0 = Map("世界地图示例", width=800, height=400)

map0.add("世界地图", attr, value, maptype="world", is_visualmap=True, visual_text_color='#000')

map0.render(path="世界地图.html")

中国地图

from pyecharts import Map

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}

provice = list(province_distribution.keys())

values = list(province_distribution.values())

map = Map("中国地图", '中国地图', width=600, height=400)

map.add("", provice, values, visual_range=[0, 50], maptype='china', is_visualmap=True,

visual_text_color='#000')

map.render(path="中国地图.html")

省市地图

from pyecharts import Map

map2 = Map("贵州地图", '贵州', width=600, height=400)

city = ['贵阳市', '六盘水市', '遵义市', '安顺市', '毕节市', '铜仁市', '黔西南布依族苗族自治州', '黔东南苗族侗族自治州', '黔南布依族苗族自治州']

values2 = [1.07, 3.85, 6.38, 8.21, 2.53, 4.37, 9.38, 4.29, 6.1]

map2.add('贵州', city, values2, visual_range=[1, 10], maptype='贵州', is_visualmap=True, visual_text_color='#000')

map2.render(path="贵州地图.html")

区县地图

from pyecharts import Map

quxian = ['观山湖区', '云岩区', '南明区', '花溪区', '乌当区', '白云区', '修文县', '息烽县', '开阳县', '清镇市']

values3 = [3, 5, 7, 8, 2, 4, 7, 8, 2, 4]

map3 = Map("贵阳地图", "贵阳", width=600, height=400)

map3.add("贵阳", quxian, values3, visual_range=[1, 10], maptype='贵阳', is_visualmap=True)

map3.render(path="贵阳地图.html")

热力图

from pyecharts import Geo

keys = ['上海', '北京', '合肥', '哈尔滨', '广州', '成都', '无锡', '杭州', '武汉', '深圳', '西安', '郑州', '重庆', '长沙', '贵阳', '乌鲁木齐']

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, 1.2, 3.7]

geo = Geo("全国主要城市空气质量热力图", "data from pm2.5", title_color="#fff",title_pos="left", width=600, height=400,background_color='#404a59')

geo.add("空气质量热力图", keys, values, visual_range=[0, 5], type='effectScatter',visual_text_color="#fff", symbol_size=15,is_visualmap=True, is_roam=True) # type有scatter, effectScatter, heatmap三种模式可选,可根据自己的需求选择对应的图表模式

geo.render(path="全国主要城市空气质量热力图.html")

动态流向图

更新: pyecharts已更新,更新方法:

pip install --upgrade pyecharts

中文官网教程:pyecharts - A Python Echarts Plotting Library built with love.

此内容具体网址:https://pyecharts.org/#/zh-cn/geography_charts?id=geo%ef%bc%9a%e5%9c%b0%e7%90%86%e5%9d%90%e6%a0%87%e7%b3%bb

根据此方法获得的图示动态的,如果需要动态插入文章中可以制成GIF图片,我的制作方法是利用EV录屏软件录制一个动态周期的视频,然后在利用 动态图(GIF)制作方法这个网址,绘制此gif图片。当然如果你能保证每次截取的图片大小一样,可以直接多截几张图,利用一些网站,将图片合成gif也行。

绘图代码:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2020/2/23 13:13

# @Author : ystraw

# @Site :

# @File : t3.py

# @Software: PyCharm Community Edition

# @function: 绘制城市动态流向图

# 导入Geo包,注意1.x版本的导入跟0.x版本的导入差别

# 更新方法:pip install --upgrade pyecharts

from pyecharts.charts import Geo

# 导入配置项

from pyecharts import options as opts

# ChartType:图标类型,SymbolType:标记点类型

from pyecharts .globals import ChartType, SymbolType

geo = Geo()

# 新增坐标点,添加名称跟经纬度, 也就是当地图中不包含这个地名的坐标时,自己加入!

geo.add_coordinate('新地点', 122.480539, 35.235929)

# 地图类型,世界地图可换为world

geo.add_schema(maptype="china")

# 添加数据点

geo.add("",[("北京",10),("上海",20),("广州",30),("成都",40),("哈尔滨",50),("新地点",40)],type_=ChartType.EFFECT_SCATTER)

# 添加流向,type_设置为LINES,涟漪配置为箭头,提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle',

#'diamond', 'pin', 'arrow', 'none'

geo.add("geo-lines",

[('北京', '广州'), ('上海', '上海'), ('广州', '成都'),('成都', '哈尔滨'), ('新地点', '哈尔滨')],

type_=ChartType.LINES,

effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW,symbol_size=10,color="yellow"),

linestyle_opts=opts.LineStyleOpts(curve=0.2),

is_large=True)

# 不显示标签

geo.set_series_opts(label_opts=opts.LabelOpts(is_show=True))

# 设置图标标题,visualmap_opts=opts.VisualMapOpts()为左下角的视觉映射配置项

geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(),title_opts=opts.TitleOpts(title="城市动态流向图"))

# 直接在notebook里显示图表

geo.render_notebook()

# 生成html文件,可传入位置参数

geo.render("城市动态流向图2.html")

相关推荐

艾玛·罗伯茨家暴后登封面 大谈与男友关系(图)
365bet官网开户

艾玛·罗伯茨家暴后登封面 大谈与男友关系(图)

📅 08-08 👁️ 1543
共享电动车1小时多少钱
bt365全程担保

共享电动车1小时多少钱

📅 09-20 👁️ 9644
不知道照片图库里的照片怎么删除?这里有详细教程快来看!
2014年国际足联17岁以下女足世界杯决赛 日本VS西班牙 20140405
FLV转WMV - 在线转换视频文件
365bet体坛即时比分

FLV转WMV - 在线转换视频文件

📅 09-21 👁️ 4658
如何监测 Linux 的磁盘 I/O 性能
365bet官网开户

如何监测 Linux 的磁盘 I/O 性能

📅 09-20 👁️ 478