Python绘制数据地图
时间:2022-07-23
本文章向大家介绍Python绘制数据地图,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
概述
做一个绘制地图的推文很久之前就想过,后来由于记性不好就忘了。还记得疫情初始,各大平台推出的疫情分布图,当时就想着动手做一下,本文就是简单做着玩一下,里面的数据是随便输入的(无实际意义),只是为了学习下里面的模块。
实现模块
主要用到的新的Python模块是Geopandas,就是利用他来绘制数据地图的,具体说明可以参看https://geopandas.org/。
Geopandas 好就好在它自带了一副世界地图,具体绘制过程中不需要依赖其他的地图文件。
具体实现
1、导入地图
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
此时你会发现该地图并不友好,因此需要做以下操作:
a.除去南极洲
b.转换投影方式
world = world[world.continent != 'Antarctica']
world = world.to_crs("EPSG:3395")
2、导入数据
绘制的地图为数据地图,导入数据是必然的。导入数据,并将他们存在DataFrame中。
country_number = {'United States of America': 1385834,
'Italy': 219814,
'Spain': 268143,
'China': 81470,
......
}
df_country_number = pd.DataFrame(country_number.items(), columns=['name', 'number'])
3、基本的数据匹配处理
a.数据匹配
b.缺省值处理
world = pd.merge(world, df_country_number, on='name', how='left')
world['number'] = world['number'].fillna(0).astype('int')
4、绘制数据地图
几句话就可以直接绘制
fig, ax = plt.subplots(figsize=(15, 10), dpi=200)
world.plot(ax=ax,
linewidth=0.2, edgecolor='gray',
column='number', cmap='Reds',
legend=True)
实现效果
1、除去南极洲
a.除去之前
b.除去之后
2、投影方式转换
a.转换前
b.转换后
3、最终效果
总结
绘制该种数据地图可以应用与各种场景,只需要更改数据就行。
- 使用Buck构建Android工程
- android 实现淘宝收益图的折线
- React Native入门(三)组件的Props(属性)和State(状态)
- Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)【Dalston版】
- PNG图片压缩对比分析
- 关于M4A文件的随机访问
- (whh仅供自己参考)进行ip网络请求的步骤
- HTML中的javascript交互
- Spring Cloud构建微服务架构:分布式配置中心【Dalston版】
- [Android] Toast问题深度剖析(二)
- [Android] Toast问题深度剖析(一)
- android离线缓存技术
- 浅谈ViewModel
- Android深入理解JNI(二)类型转换、方法签名和JNIEnv
- 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 数组属性和方法
- 持续代码质量管理-SonarQube Scanner部署 2.1. 软件安装2.2. 配置修改
- 《前端那些事》聊聊前端的按需加载
- 直播带货系统,滚动视图,上滑隐藏,下滑显示
- 持续代码质量管理-SonarQube-7.3简单使用 2.1. 查看配置2.2. 质量检测2.3. 浏览器查看
- 安装指定版本的docker服务
- 你学BFF和Serverless了吗
- 如何使用Java连接Kerberos的Phoenix
- docker swarm的常用操作
- 组件库源码中这些写法你掌握了吗?
- spark-2.4.0-hadoop2.7-安装部署 4.1. Spark安装4.2. 环境变量修改4.3. 配置修改4.4. 分发到其他机器4.5. 启动spark
- spark-2.4.0-hadoop2.7-高可用(HA)安装部署 5.1. Spark安装5.2. 环境变量修改5.3. 配置修改5.4. 分发到其他机器5.5.
- spark-2.4.0-hadoop2.7-简单操作 2.1. 相关截图
- Navicat Premium 12.0.24安装与激活(亲测已成功激活) 2.1. 下载激活文件2.2. 激活步骤准备工作2.3. 激活Navicat
- VMware实现iptables NAT及端口映射
- Saltstack_使用指南01_部署