matplotlib+basemap画出标记地图
参考地址:https://mp.weixin.qq.com/s/Mni6ZLGC5jlUzMVpglv6JA https://www.cnblogs.com/ameile/p/6694982.html
1.首先建立一个字典用来存储每个省份的疫情状况,使用不同的颜色标记来区分
2.readshapefile为读取下载好的地图文件,源码中的原话为:
For example, if name='counties', self.counties will be a list of x,y vertices for each shape in map projection coordinates and self.counties_info will be a list of dictionaries with shape attributes. 程序中给入的值为prov,所以map1.prov_info为地图信息,map1.prov为多边形的坐标
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
from matplotlib.patches import PathPatch
import numpy as npif __name__ == '__main__':info_dic = {}provinces = ['湖北','广东','浙江','河南','湖南','安徽','江西','江苏','重庆','山东','四川','北京','黑龙江','上海','福建','河北','陕西','广西','云南','海南','山西','贵州','辽宁','天津','甘肃','吉林','内蒙古','新疆','宁夏','香港','青海','台湾','澳门','西藏']nums =[29631,1151,1092,1073,879,830,771,492,468,466,405,337,331,299,261,218,213,210,141,136,119,109,107,94,83,80,58,49,49,36,18,18,10,1]colors = ['darkred','firebrick','indianred','lightcoral','lightsalmon']for i in range(len(provinces)):info_dic[provinces[i]] = str(nums[i])for name in info_dic.keys():# print(name)if int(info_dic[name])>=10000:info_dic[name]= 'darkred'elif 1000<int(info_dic[name])<9999:info_dic[name]= 'firebrick'elif 100<int(info_dic[name])<999:info_dic[name]= 'indianred'elif 10<int(info_dic[name])<99:info_dic[name]='lightcoral'else:info_dic[name]='lightsalmon'map1 = Basemap(projection='lcc', width=7000000,height=5000000,lat_0=35, lon_0=105)plt.figure(figsize=(12,9))map1.drawmapboundary(fill_color='aqua')map1.fillcontinents(color='#ddaa66',lake_color='aqua')map1.drawcoastlines()map1.readshapefile(r'map\gadm36_CHN_1', 'prov')#print(map1.prov_info)#print(map1.prov) #列表#map1.readshapefile(r'f:\data\gadm36_TWN_shp\gadm36_TWN_0', 'taiwan') # 台湾地图要单独添加#print(list(zip(map1.prov_info, map1.prov)))ax = plt.gca() # 获取当前子图for name in provinces:patch = []if name != '台湾':for info, shape in zip(map1.prov_info, map1.prov): # 将每个省的地图信息与坐标合并成元组if name in info['NL_NAME_1']: # map1.prov_info 中'NL_NAME_1': '遼寧|辽宁',patch.append( Polygon(np.array(shape), closed=True)) # 将多边形顶点连接绘制多边形ax.add_collection(PatchCollection(patch, facecolor=info_dic[name],edgecolor='k', linewidths=1., zorder=2))# else:# for info, shape in zip(map1.taiwan_info, map1.taiwan):# if info['NAME_0'] == "Taiwan":# patch.append( Polygon(np.array(shape), closed=True) )# ax.add_collection(PatchCollection(patch, facecolor=info_dic['台湾']['color'], edgecolor='k', linewidths=1., zorder=2))plt.show()
matplotlib+basemap画出标记地图相关推荐
- Python下basemap画出的各种地图
刚接触Python的basemap库时,被它所能产生的效果震撼了. 但是在深入的学习时发现网上很难找到系统的中文教程,仅能搜到一些博客文章里讲到的某些知识点,不成体系,就难以运用自如. 在网上看了看官 ...
- 如何用python画出中国地图-用Python画中国地图(二)
在上一篇文章<用Python画一个中国地图>中,我们简单描述了一下如何用Python快速画出一个中国地图的轮廓,似乎没有什么实用价值,这一次我们用实际数据填充它,使它看上去更有意义. 上色 ...
- 如何用python画出中国地图-用Python画一个中国地图
你用 Java 的 4 行代码画一个地图出来?m.drawcountries(linewidth=1.5) 就变成了如许: 用 Java 可能吗?用 PHP 可能吗? 如不雅我们想显示中国地图,只须要 ...
- matplotlib函数画出高数函数图像
很多考研同学此时此刻都在为了高数而头疼,很多同学看到函数之后想利用函数图像来判断某些问题,方便明了而且简洁的利用图像来解决问题. 但是在观察图形之前有一个很令人头疼的问题:我们此时此刻遇到的函数已经不 ...
- python matplotlib模块画出的图像转换为.tiff格式
利用python matplotlib模块(python3.7.1)画出的图表暂不支持直接导出.tiff格式的图片,但是可以导出eps, pdf, pgf, png, ps, raw, rgba, s ...
- Android开发画出中国地图,Android 绘制中国地图
最近的版本有这样一个需求: 有 3 个要素: 中国地图 高亮省区 中心显示数字 面对这样一个需求,该如何实现呢? 高德地图 因为项目是基于高德地图来做的,所以很自然而然的想到了高德.但是当查阅高德地图 ...
- 利用python爬取空气质量数据,并用Matplotlib模块画出分析图
爬取到的数据 分析图: 源代码: import csv import random import time import pandas as pd import requests from bs4 i ...
- python使用matplotlib包画出3d图像
例子代码如下: import matplotlib.pyplot as pltdef zfunc(x):return (x[0] ** 2 + x[1] - 11) ** 2 + (x[0] + x[ ...
- Vue+Excharts画出重庆地图
一.引入Excharts 全国地图选择器API http://datav.aliyun.com/tools/atlas/#&lat=30.199123662463407&lng=107 ...
最新文章
- vs2005什么时候能出正式版
- pip freeze requirements.txt 分隔 sudo pip install -r requirements.txt
- 【Android 安装包优化】APK 打包流程 ( 文件结构 | 打包流程 | 安装流程 | 安卓虚拟机 )
- Oracle的外部表
- [2017.11.11特辑]以一个光棍节表白案例浅谈ECMAScript6模块化的使用方法
- 苹果风格ui_苹果如何使Soft-UI成为未来
- jooq和jdbc_在jOOQ之上构建的RESTful JDBC HTTP服务器
- C# 5.0 CallerMemberName CallerFilePath CallerLineNumber 在.NET4中的使用
- jqc3ff继电器引脚图_单片机控制继电器驱动电路图原理分析
- 2019全球程序员薪酬报告:软件开发比机器学习抢手!40岁后收入下滑
- SQL数据库引擎服务SQL Server启动参数概述
- java中怎么自己画地图_用 4 行代码画一幅中国地图
- rockchip的调试手段
- 数据库第九章习题作业
- 3分钟教会你Graylog收集Windows主机日志
- Python网络爬虫实践简答题
- GBase XDM集群服务配置
- 【经验】VMware|windows更新20H2版本后VMware虚拟机无法开启(禁用Device guard)
- win10系统运行sh脚本
- EXCEL两个表如何通过关联合并