程序员如何庆祝十一:用Python绘制红色的中国地图
文章目录
- 安装Basemap
- 中国地理地图
- 红色的中国地图
安装Basemap
basemap
相当于是matplotlib
的扩展,而且作为一款地图绘制工具各种地理坐标的转换是其必不可少的功能,故而需要安装pyproj
,在去年以前,Basemap
还没有进入pip
的时候,还得手动安装各种依赖,并且下载whl
在本地安装,过程十分痛苦。
但今天发现可以用pip
和conda
进行安装了,可谓喜大普奔。但需要注意,除了安装基础库之外,还需安装数据包。
conda install basemap
conda install conda install -c conda-forge basemap-data-hires
装完之后,进入python,先搞个地球再说
import matplotlib.pyplot as plt
import mpl_toolkits.basemap as bm #以下都默认bm
from mpl_toolkits.basemap import Basemap
m = Basemap(projection='ortho',lat_0=30, lon_0=100)
m.bluemarble()
plt.show()
得到
其中,projection
为投影方式,ortho
表示正交投影;lat_0
表示中心维度;lon_0
表示中心经度。
bluemarble
是一种绘图时的渲染方法,可以理解为极致色彩。
中国地理地图
中国最东端在黑龙江和乌苏里江的主航道中心线的相交处(135.05E),最西端在帕米尔高原附近(73.49E),最南端在立地暗沙(3.516N),最北端在漠河以北黑龙江主航道的中心线上(53.56N),有了这些经纬度信息,就可以绘制出中国地图了
cm = bm.Basemap(llcrnrlon=73,llcrnrlat=3,urcrnrlon=136,urcrnrlat=54)
cm.bluemarble()
plt.show()
就可以看到这个熟悉的轮廓
其输入参数表示起始经纬度,由于参数的名字太过吊诡,所以有必要说明一下记忆方法。ll
即lower left;ur
即upper right;crnr
即corner。然后lon
表示经度;lat
表示维度。
综合来看,llcrnrlon
为低经度;llcrnrlat
为低纬度;urcrnrlon
为高经度;urcrnrlat
为高纬度。
红色的中国地图
若想绘制更加精细的中国地图,就需要用到额外的数据包了,戳这里:中国地图的shp包,含九段线。
下载后解压,然后就可以通过readshapefile
调用了,其绘图代码如下
# 画中国地图
cm = bm.Basemap(llcrnrlon=73,llcrnrlat=3,urcrnrlon=136,urcrnrlat=54)
cm.readshapefile('cn/九段线', 'china', drawbounds=True)
cm.readshapefile('cn/省', 'china', drawbounds=True)
# 给 seg 地区 画 k 颜色
ax = plt.gca()
ax.axis('off')
for seg in cm.china:poly = plt.Polygon(seg, facecolor='r')ax.add_patch(poly)plt.show()
效果如下
其中,readshapefile
用于读取shp
文件,drawbounds
设为True,表示绘制边界plt.Polygon
用于绘制图形。其绘图逻辑为,逐个添加各省份的形状,然后将这些形状染为红色。
程序员如何庆祝十一:用Python绘制红色的中国地图相关推荐
- 怎么用python制作简单的程序-神级程序员教你如何用python制作一个牛逼的外挂!...
玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂.... 我打开了4399小游 ...
- 精通python能干嘛-一个程序员怎样才算精通Python?
原标题:一个程序员怎样才算精通Python? 作者:赖明星 我会先给出我对精通Python的理解,然后给出一些Python中有难度的知识点.如果大家在看完我这篇回答之前,已经充分理解了我列出的各个知识 ...
- python工程师证书-一个程序员怎么才算精通python
我会先给出我对精通Python的理解,然后给出一些Python中有难度的知识点.如果大家在看完我这篇回答之前,已经充分理解了我列出的各个知识点,那么,我相信你已经算是精通Python了.如果不能,我希 ...
- (程序员必备技能)基于Python的鼠标与键盘控制实战扩展与源码
(程序员必备技能)基于Python的鼠标与键盘控制实战与源码 文章目录 (程序员必备技能)基于Python的鼠标与键盘控制实战与源码 一.序言 二.配置环境 1.下载pyautogui包 三.鼠标控制 ...
- Java里面jvr,寻找下一个结点 牛客网 程序员面试金典 C++ java Python
寻找下一个结点 牛客网 程序员面试金典 C++ java Python 题目描述 请设计一个算法,寻找二叉树中指定结点的下一个结点(即中序遍历的后继). 给定树的根结点指针TreeNode* root ...
- 学完python写不出程序_我又不当程序员,为什么要学Python编程?
记得刚毕业时,所受的第一场职场教育便是: 职场如战场,战场上只论功劳,不论苦劳. 回想起那时,无数个夜晚披星戴月加班加点,却常常被狠批在做无用功,迷茫与崩溃说来就来,甚至会觉得 " 越努力越 ...
- 视频教程-程序员的数学:微积分-Python
程序员的数学:微积分 花名王司图,毕业于北京航空航天大学及帝国理工学院,具有多年数据分析.深度学习研发经验. 王文凯 ¥19.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免 ...
- 普通人的双十一VS程序员的双十一
双十一购物节 又是一年双十一 这才一号,大家就开始"浴血奋战"了 定金+尾款+满减+@#$%^&- 这些优惠政策你算明白了吗? 限量的神仙水.13香你抢到了吗? 付过尾款的 ...
- 程序员常用的十一种算法
文章目录 程序员常用的十一种算法 1.二分查找算法 2.分治法 3.动态规划 4.字符串暴力匹配算法 5.KMP算法 6.贪心算法 7.普里姆算法介绍(找点) 8.克鲁斯卡尔(Kruskal)算法(找 ...
- 玩转PYthon,用Python绘制全球疫情变化地图(好东西,值得一看~~~)
用Python绘制全球疫情变化地图 目前全球疫情仍然比较严重,为了能清晰地看到疫情爆发以来至现在全球疫情的变化趋势,我绘制了一张疫情变化地图,完整代码共 230 行,需要的朋友在公众号回复关键字 疫情 ...
最新文章
- 云炬随笔20171209
- AtCoder Beginner Contest 204 F Hanjo 2
- 解决AutoCAD2010安装完毕后闪退问题
- php中api提升响应速度,php – WordPress REST API慢响应时间
- java中main函数的值是_java基础-main方法
- 软件工程 毕业设计题目汇总
- 解决方案-电子签章:金格科技
- JMETER badboy 下载及安装
- cvc 降噪_CVC降噪和DSP降噪有什么区别?
- 【Go语言】深入浅出chan(各种实例场景+分析)
- Alfred workflow使用教程持续更新
- 蓝牙耳机什么样式最舒服?推荐一款好用的蓝牙耳机
- jquery的eval的使用
- vue路由守卫死循环及next原理解释
- javascript 模板_了解JavaScript中的模板文字
- 如何估算一个城市有多少座加油站
- Blog技巧,让Google把你的blog翻译成英文
- 大型门户网站(响应式)
- 登山鞋选对了才穿得舒服
- 吉林大学设计模式第四次作业(上)
热门文章
- HTML5期末大作业:京东商城网站设计——京东商城购物网站(4页) 基于Html+Css+javascript的网页制作(购物主题)
- 四川全国计算机一级考试查询系统,2013四川计算机一级成绩查询入口
- noob的第一步——基于51单片机的指纹密码锁
- 计算机系统变慢的原因,重装系统后电脑变得很慢原因分析及解决办法
- linux 路由配置工具下载,Linux/Openwrt路由安装配置UPNP服务提高迅雷下载速度
- 什么是GC?GC的基本原理
- 二层交换机与三层交换机区别详解~
- C++:实现标准体重判定
- 杭州电子科技大学ACM1020 JAVA
- c.cnzz.com core.php,谷歌浏览器下cnzz统计代码报错被拦截