背景

在业务数据统计分析中基本都会涉及到各省区的分析,数据可视化是数据分析的一把利器,这些省区的数据一般会用地图可视化出来,这样一些规律可以被一面了然发现

地图有很多可视化类型,比如:基本地理图、热力图、路径图、涟漪图 等,本篇文章主要介绍 热力图,使用的工具百度开源 pyecharts

模拟数据以十一期间全国旅游景点热度为例(虚构数据)

模拟数据

基于pyecharts内置经纬度的热力图

pyecharts 中自带了一些城市的经纬度,在画图时只要列出城市 or 省份的名字,即可在地图中自动展示,pyecharts会根据城市 or 省份的名字自动提取到经纬度

安装完pyecharts包之后,可以在pyecharts包文件夹里面找到相应的文件city_coordinates.json,里面保存了大量的地理名与经纬度的信息
一般路径如下:xxxxxx\Lib\site-packages\pyecharts\datasets\city_coordinates.json

下面用模拟数据中 城市热度 列来进行热力图可视化左右滑动查看完整代码

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import BMap
from pyecharts.globals import BMapType
import jsondata=pd.read_excel('热力图模拟数据.xlsx')hotmap = (BMap(is_ignore_nonexistent_coord=True,    #忽略不存在的坐标init_opts=opts.InitOpts(width="1300px", height="600px")).add_schema(baidu_ak="自己申请的key", center=[120.13066322374, 30.240018034923],zoom=5,   # 当前视角的缩放比例is_roam=True   # 是否开启鼠标缩放和平移漫游)  .add("热度",  #图例data_pair=[list(z) for z in zip(data['城市'].to_list(), data['热度'].to_list())],type_="heatmap",label_opts=opts.LabelOpts(formatter="{b}"),).set_global_opts(title_opts=opts.TitleOpts(title="十一期间全国旅游景点热度",pos_left='center',title_textstyle_opts=opts.TextStyleOpts(font_size=32)), legend_opts=opts.LegendOpts(pos_right='20%'),visualmap_opts=opts.VisualMapOpts()).add_control_panel(copyright_control_opts=opts.BMapCopyrightTypeOpts(position=3),maptype_control_opts=opts.BMapTypeControlOpts(type_=BMapType.MAPTYPE_CONTROL_DROPDOWN),scale_control_opts=opts.BMapScaleControlOpts(),overview_map_opts=opts.BMapOverviewMapControlOpts(is_open=True),navigation_control_opts=opts.BMapNavigationControlOpts(),geo_location_control_opts=opts.BMapGeoLocationControlOpts(),).render("基于pyecharts内置经纬度的热力图.html")
)#hotmap.render_notebook()
内置经纬度

基于自定义经纬度的热力图

因pyecharts中的 city_coordinates.json 里面存放的均是一些常用的地理经纬度,如果想使用自定义的经纬度,pyecharts也是支持的

下面用模拟数据中 经度维度热度 列来进行热力图可视化

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import BMap
from pyecharts.globals import BMapType
import jsondata=pd.read_excel('热力图模拟数据.xlsx')data_json={}
for index,row in data.iterrows():data_json[row['地名']]=[float(row['经度']),float(row['维度'])]with open("BMAP.json","w") as f:json.dump(data_json,f)hotmap = (BMap(is_ignore_nonexistent_coord=True,    #忽略不存在的坐标init_opts=opts.InitOpts(width="1300px", height="600px")).add_schema(baidu_ak="自己申请的key", center=[120.13066322374, 30.240018034923],zoom=5,   # 当前视角的缩放比例is_roam=True   # 是否开启鼠标缩放和平移漫游).add_coordinate_json("BMAP.json")  #加载自定义坐标.add("热度",  #图例data_pair=[list(z) for z in zip(data['地名'].to_list(), data['热度'].to_list())],type_="heatmap",label_opts=opts.LabelOpts(formatter="{b}"),).set_global_opts(title_opts=opts.TitleOpts(title="十一期间全国旅游景点热度",pos_left='center',title_textstyle_opts=opts.TextStyleOpts(font_size=32)), legend_opts=opts.LegendOpts(pos_right='20%'),visualmap_opts=opts.VisualMapOpts(max_=20)  #设置最大值,目的是为了能够精确查看自定坐标位置).add_control_panel(copyright_control_opts=opts.BMapCopyrightTypeOpts(position=3),maptype_control_opts=opts.BMapTypeControlOpts(type_=BMapType.MAPTYPE_CONTROL_DROPDOWN),scale_control_opts=opts.BMapScaleControlOpts(),overview_map_opts=opts.BMapOverviewMapControlOpts(is_open=True),navigation_control_opts=opts.BMapNavigationControlOpts(),geo_location_control_opts=opts.BMapGeoLocationControlOpts(),).render("基于自定义经纬度的热力图.html")
)#hotmap.render_notebook()
自定义经纬度

pyecharts库缺点

没有现成的方法用来直接导入自定义坐标,需要先把自定义坐标写在json文件中,然后再通过加载文件实现导入,而没有一个直接导入自定义坐标的方法,这个可以从源码中看出来,如果有一个 add_coordinate_dict 函数就完美了

缺点

不同地图坐标系区别

我们通常用经纬度来表示一个地理位置,但是由于一些原因,我们从不同渠道得到的经纬度信息可能并不是在同一个坐标系下。

  • 高德地图、腾讯地图以及谷歌中国区地图使用的是GCJ-02坐标系
  • 百度地图使用的是BD-09坐标系
  • 底层接口(HTML5 Geolocation或ios、安卓API)通过GPS设备获取的坐标使用的是WGS-84坐标系

不同的坐标系之间可能有几十到几百米的偏移,所以在开发基于地图的产品,或者做地理数据可视化时,我们需要修正不同坐标系之间的偏差。

WGS-84 - 世界大地测量系统

WGS-84(World Geodetic System, WGS)是使用最广泛的坐标系,也是世界通用的坐标系,GPS设备得到的经纬度就是在WGS84坐标系下的经纬度。通常通过底层接口得到的定位信息都是WGS84坐标系

GCJ-02 - 国测局坐标

GCJ-02(G-Guojia国家,C-Cehui测绘,J-Ju局),又被称为火星坐标系,是一种基于WGS-84制定的大地测量系统,由中国国测局制定。此坐标系所采用的混淆算法会在经纬度中加入随机的偏移。

国家规定,中国大陆所有公开地理数据都需要至少用GCJ-02进行加密,也就是说我们从国内公司的产品中得到的数据,一定是经过了加密的。绝大部分国内互联网地图提供商都是使用GCJ-02坐标系,包括高德地图,谷歌地图中国区等。

BD-09 - 百度坐标系

BD-09(Baidu, BD)是百度地图使用的地理坐标系,其在GCJ-02上多增加了一次变换,用来保护用户隐私。从百度产品中得到的坐标都是BD-09坐标系

历史相关文章

  • 利用Python计算两个地理位置之间的中点
  • 利用Python+PyEcharts画出《人民日报》各国疫情图
  • 罗兰贝格图--Python等高线图(平滑处理)

以上是自己实践中遇到的一些问题,分享出来供大家参考学习,欢迎关注微信公众号:DataShare ,不定期分享干货


http://www.taodudu.cc/news/show-4628974.html

相关文章:

  • Python pandas 里面的数据类型坑,astype要慎用
  • Python数据处理中 pd.concat 与 pd.merge 区别
  • Python 利用聚类算法对图片进行颜色压缩
  • Hive 中的各种常用set设置
  • Python 利用4行代码实现图片灰度化
  • Python 字符串格式化 f-string f“{}“ .format
  • apollo服务器集成java_Apollo Server 集成性能监控
  • SQL语句大全 作者:阿多
  • MD5算法在PB中的实现(转载自 - 阿多米 - 博客园)
  • E站账号cookie分享_不用输入密码无风险?扫描二维码登录QQ账号也不安全!
  • E.164号码,E.214号码,E.212号码
  • E码通电子凭证服务平台 通用接口接入规范
  • 【论文笔记-NER综述】A Survey on Deep Learning for Named Entity Recognition
  • MT-BERT在文本检索任务中的实践
  • 2021-03-4:task04_NFM模型
  • 美团外卖推荐智能流量分发的实践与探索
  • Encoding History with Context-aware Representation Learning for Personalized Search(2020SIGIR)
  • 【SIGIR22】使用反事实生成器来消除知识感知推荐中的虚假联系
  • SIGIR2020|基于自注意力机制和多鉴别器的序列推荐
  • 2019_SIGIR_A Neural Influence Diffusion Model for Social Recommendation
  • SetRank(2020SIGIR)
  • 一站式SCI投稿大全(感谢pennhmp116版主的整理)
  • 风云邀请成为IT168社区Silverlight版主
  • [Android实例] [版主原创]ScrollView嵌套ScrollView
  • Web前端开发规范文档(更新于2013-01-13)
  • 菜鸟学做论坛01
  • 版主上路之 Application Server
  • 自动化测试构架之Robot Framework——01 介绍
  • 经验技巧01
  • 第三天 入口文件index.php 01

Python 基于pyecharts自定义经纬度热力图可视化相关推荐

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

    转载: 详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图) Pyecharts绘制全球流向图 pyecharts中文教程官网 目录  安装对应的python模块 世界 ...

  2. Python基于Pyecharts 1.X的世界地图、省、市、县(区)地图、热力图和飞行航线图

    首先安装对应的python模块 $ pip install pyecharts  $ pip install echarts-countries-pypkg $ pip install echarts ...

  3. 用 Python 基于 pyecharts 对微信好友进行分析

    参考博客在这里:https://blog.csdn.net/yaoyefengchen/article/details/79427475 Echarts 已经更新到了 ver.4 版本,原文用的是网页 ...

  4. Python 基于积分原理计算定积分并可视化数值积分计算的动画过程

    文章目录 一.问题描述 二.代码实现 1.  并基于积分原理计算  ∫ 0 1 x 3 + 1  的值  1. \text { 并基于积分原理计算 } \int_{0}^{1} x^{3}+1 \te ...

  5. Python 基于tkinter模块的GUI可视化学生成绩管理系统实现(含文件保存)

    学生成绩管理系统 1. 标准模块导入 2.完整代码 3.文件保存模块 作者:潇 版本:1.0 面向对象,带日志,带异常处理的,带密码加密 第一次执行会生成数据库和csv文件,以后添加的数据会自动保存到 ...

  6. 基于pyecharts的中医药知识图谱可视化

    基于pyecharts的中医药知识图谱可视化 关键词: pyecharts:可视化:中医药知识图谱 摘要: 数据可视化是一种直观展示数据结果和变化情况的方法,可视化有助于知识发现与应用.Neo4j数据 ...

  7. python基于模型的预测概率和标签信息可视化ROC曲线、编写自定义函数计算约登值、寻找最佳阈值(threshold、cutoff)、可视化ROC曲线并在曲线中标记最佳阈值及其数值标签

    python基于模型的预测概率和标签信息可视化ROC曲线.编写自定义函数计算约登值.寻找最佳阈值(threshold.cutoff).可视化ROC曲线并在曲线中标记最佳阈值及其数值标签 目录

  8. 基于Python的微信朋友圈数据可视化分析之地点

    前提 朋友圈的相关数据请参照上一篇文章<基于Python的微信朋友圈数据可视化分析之个性签名>获取,本篇文章默认需要的数据已经下载保存至本地的 csv 文件中了. 将好友的地点按照省份进行 ...

  9. 基于pyecharts的Kline以及pandas对美国标准普尔500指数历史数据(SP500)进行数据可视化分析

    基于pyecharts的Kline以及pandas对美国标准普尔500指数历史数据(SP500)进行数据可视化分析 k线图简述 对股票数据的描述,我们最常用的还是k线图,k线图包含四个数据,即开盘价. ...

最新文章

  1. 远程管理客户端--SCCM
  2. 图像处理常用八大算法
  3. c语言程序如何实现分组,c程序-实现随机分组.ppt
  4. git新手配置(ios环境)
  5. javascript生成m位随机数
  6. cookies时效由谁决定_胎儿的性别,是什么时候定下来的,又是由谁决定的?
  7. java ipmi关闭服务器,Dell服务器的IPMI/iKVM使用方法(开机,关机,重启,重装系统)...
  8. stm32压力传感器步进电机
  9. 西北工业大学网络空间安全考研经验分享
  10. 手绘几何图形识别(下)
  11. lombok slfj 中_Lombok快速入门
  12. 从高考到程序员,一生无悔的选择,码农的成长之路
  13. cmpp 免提短信(闪信)
  14. Excel的照相机功能(转载+亲自实践)
  15. 上号神器|王者扫码登录教程,苹果安卓通用扫码教程(建议收藏)
  16. wamp php不可用_使用wamp扩展php时出现服务未启动的解决方法
  17. 10-222 在员工表中查询每年入职的员工人数
  18. C语言单链表代码实现
  19. Python 卡方检验
  20. 分享一个务实派 CEO 的理念和实践

热门文章

  1. CSS3画布Canvas知识点
  2. android解锁界面分析,Android 7.0 锁屏解锁之向上滑动显示解锁界面分析
  3. 能够语义化的编写html文档,HTML语义化 - 写给未来的自己 - OSCHINA - 中文开源技术交流社区...
  4. 聊聊从逻辑门到操作系统的计算机
  5. Excel打开csv或文本文件乱码怎么办?
  6. 论文词汇:使用Although转折引出,本文研究内容还没有很多关注。
  7. Apipost产品介绍
  8. 在linux下搭建私有云
  9. 股票查询系统,模糊查询,判断数值,字典,列表,字符串的运用python
  10. leetcode(15):华为HJ95||人民币转换