Pyecharts绘制地图 流入地图 热力图
时间:2022-07-23
本文章向大家介绍Pyecharts绘制地图 流入地图 热力图,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
概述
最近在用“智行”时发现一个有意思的东西,该软件会根据用户的行程记录,生成用户的流入流出数据地图。感觉比较有趣就上网查了实现方法。
Pyecharts
Pyecharts 是一个用于生成 Echarts 图表的类库。用 Echarts 生成的图可视化效果很不错,Pyecharts库是用来与 Python 进行对接,方便 Python 直接使用数据生成图。
要实现数据地图功能要安装部分地图扩展。
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
其中
1)全球国家地图(echarts-countries-pypkg):世界地图和 213 个国家,包括中国地图。
2)中国省级地图(echarts-china-provinces-pypkg)。
3)中国市级地图(echarts-china-cities-pypkg):370 个中国城市。
绘制数据流向图
其实没啥内容,就是直接使用,直接上代码,已做注释。
from pyecharts.charts import Geo
from pyecharts import options as opts
from pyecharts.globals import ChartType, SymbolType
geo = Geo()
# 地图类型,世界地图可换为world
geo.add_schema(maptype="china")
# 添加数据点
geo.add("", [("天津", 100), ("拉萨", 100), ("新疆", 100), ("西安", 100), ("合肥", 100), ("北京", 10), ("上海", 20), ("广州", 30),
("哈尔滨", 40), ("杭州", 50), ("成都", 60), ("武汉", 70)],
type_=ChartType.EFFECT_SCATTER)
# 添加流向
geo.add("",
[("合肥", "广州"),
("合肥", "新疆"),
("合肥", "哈尔滨"),
("合肥", "北京"),
("合肥", "广州"),
("合肥", "拉萨"),
("合肥", "天津"),
("合肥", "成都"),
("合肥", "西安"),
("合肥", "杭州"),
("合肥", "上海"),
("合肥", "武汉")],
type_=ChartType.LINES,
effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW, symbol_size=5, color="yellow"),
linestyle_opts=opts.LineStyleOpts(curve=0.3),
is_large=True)
# 不显示标签
geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
# 直接在notebook里显示图表
geo.render_notebook()
# 生成html文件,可传入位置参数
geo.render("myMapChart.html")
效果图
绘制热力图
也是直接套代码。
from pyecharts.charts import Geo
from pyecharts import options as opts
from pyecharts.globals import GeoType
geo = Geo()
geo.add_schema(maptype="china")
# 添加数据点
geo.add("", [("天津", 1), ("拉萨", 10), ("新疆", 20), ("西安", 30), ("合肥", 40), ("北京", 50), ("上海", 60), ("广州", 70),
("哈尔滨", 80), ("杭州", 90), ("成都", 100), ("武汉", 300)],
type_=GeoType.EFFECT_SCATTER, symbol_size=20)
# 设置样式
geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
# 自定义分段 color 可以用取色器取色
pieces = [
{'max': 1, 'label': '0以下', 'color': '#50A3BA'},
{'min': 1, 'max': 10, 'label': '1-10', 'color': '#3700A4'},
{'min': 10, 'max': 20, 'label': '10-20', 'color': '#81AE9F'},
{'min': 20, 'max': 30, 'label': '20-30', 'color': '#E2C568'},
{'min': 30, 'max': 50, 'label': '30-50', 'color': '#FCF84D'},
{'min': 50, 'max': 100, 'label': '50-100', 'color': '#DD0200'},
{'min': 100, 'max': 200, 'label': '100-200', 'color': '#DD675E'},
{'min': 200, 'label': '200以上', 'color': '#D94E5D'} # 有下限无上限
]
# is_piecewise 是否自定义分段, 变为true 才能生效
geo.set_global_opts(
visualmap_opts=opts.VisualMapOpts(is_piecewise=True, pieces=pieces),
title_opts=opts.TitleOpts(title="热力分布"),
)
# 渲染成html, 可用浏览器直接打开
geo.render('render.html')
效果图
总结
Pyecharts贼强大,我也只是看了一点自己需要使用的部分,后续需要慢慢摸索。
- 通过.htaccess 让WordPress 的上传文件夹更安全
- asp.net 性能调较
- 零基础学习大数据,搭建Hadoop处理环境
- 为你的WordPress 博客开启两步验证功能(技术支持:谷歌)
- 为你的WordPress 博客开启两步验证功能(技术支持:谷歌)
- WordPress 注册页面显示自定义提示信息
- Windows Server 2008密码重设盘
- Dynamite动态排序库
- WordPress 顶部管理工具条添加自定义栏目
- WordPress 在后台文章和页面列表显示对应的ID
- WordPress 修改默认的 wp_ 数据库前缀
- WordPress自动在uploads文件夹内创建子文件夹
- MP6 Light:浅色型的扁平化WordPress 后台管理界面
- WiX安装选项--环境变量
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- vue集成mergely
- SparkSQL在有赞大数据的实践(二)
- 二维码登录实现(EggJS, 小程序)
- Vant Weapp 1.0 正式版发布
- Linux虚拟内存管理
- web前端常见面试题
- JavaScript中的运算符、流程控制语句、函数、对象及数组
- iOS property的多线程问题解析
- Jest 单元测试快速上手指南
- python实现rc4加密解密,base64输出
- 「类与对象」NSObject对象的分类
- [Go] Golang练习项目-GO实现冒泡排序以及优化算法
- React 17 要来了,非常特别的一版
- 自动控制理论笔记
- 进程之间究竟有哪些通信⽅方式?如何通信? mkfifo - 创建FIFO(命名管道)