来源:由Taotao Tu网络整理+修改而得,所有代码均可运行。

1.安装

从https://www.lfd.uci.edu/~gohlke/pythonlibs/#basemap网站下载 pyproj 和 basemap 两个包的 whl 文件。由于本人电脑使用的是Python3.7 版本,故下载的whl文件均对应3.7版本。

在Anaconda prompt界面下,找到 pyproj 和 basemap 两个包的目录(输入命令的方式等同于Dos操作系统)。

pip install pyproj-2.2.2-cp37-cp37m-win32.whl

pip install basemap-1.2.1-cp37-cp37m-win32.whl

通过上述命令,既可以安装好两个绘图相关包。

2.导入库

import matplotlib.pyplot as pltfrom mpl_toolkits.basemap import Basemapfrommatplotlib.patches import Polygon

3.创建世界平面图

plt.figure(figsize=(15,7)) #定义图的大小

map = Basemap() #新建一张世界地图

map.drawmapboundary(fill_color='aliceblue') #给地球涂上蓝色

map.fillcontinents(color='palegreen',lake_color='green')

map.drawcoastlines() #画出海岸线

map.drawcountries(linewidth=1.5) #画出国家或地区分界线

plt.show() #打开窗口显示运行结果

1.png

2.png

创建世界球形图并给大地和湖泊加上颜色

plt.figure(figsize=(15,15))#定义图的大小

m = Basemap(projection='ortho',lat_0=0,lon_0=0)#创建世界地图并增加投影

m.drawmapboundary(fill_color='aliceblue') #给地球涂上蓝色

m.fillcontinents(color='palegreen',lake_color='green')#给大地和海洋涂上颜色

plt.show()

3.png

如果打算增加海岸线,只需增加 m.drawcoastlines()

plt.figure(figsize=(15,15))#定义图的大小

m = Basemap(projection='ortho',lat_0=0,lon_0=0)#创建世界地图并增加投影

m.drawmapboundary(fill_color='aliceblue') #给地球涂上蓝色

m.fillcontinents(color='palegreen',lake_color='green')#给大地和海洋涂上颜色

m.drawcoastlines()#画海岸线

plt.show()

4.png

5.绘制中国黑白地图框架

import matplotlib.pyplot as plt

from mpl_toolkits.basemap import Basemap

plt.figure(figsize=(16,8))

m = Basemap(llcrnrlon=77, llcrnrlat=14, urcrnrlon=140, urcrnrlat=51, projection='lcc', lat_1=33, lat_2=45, lon_0=100)

m.drawcoastlines()

m.drawcountries(linewidth=1.5)

plt.show()

6. 绘制中国地图

plt.figure(figsize=(16, 17)) # 定义图的大小

m = Basemap(llcrnrlon=77, llcrnrlat=14, urcrnrlon=140, urcrnrlat=51, projection='lcc',

lat_1=33, lat_2=45, lon_0=100) # 创建中国地图

m.drawcountries(linewidth=1.5) # 画出中国地图

m.drawmapboundary(fill_color='aqua') # 给地球涂上蓝色

m.fillcontinents(color='coral', lake_color='palegreen') # 给大陆和海洋分别涂上颜色

m.drawcoastlines() # 画海岸线

给中国大陆加上金色

m.readshapefile('d:\China\gadm36_CHN_1', 'states', drawbounds=True)

ax = plt.gca()

for nshape, seg in enumerate(m.states):

poly = Polygon(seg, facecolor='gold')

ax.add_patch(poly)

给中国台湾加上金色

m.readshapefile('d:\TWprovince\gadm36_TWN_1', 'taiwan', drawbounds=False)

for nshape, seg in enumerate(m.taiwan):

poly = Polygon(seg, facecolor='gold')

ax.add_patch(poly)

给中国香港加上金色

m.readshapefile('d:\HongKong\gadm36_HKG_1', 'HongKong', drawbounds=False)

for nshape, seg in enumerate(m.HongKong):

poly = Polygon(seg, facecolor='gold')

ax.add_patch(poly)

给中国澳门加上金色

m.readshapefile('d:\Macau\gadm36_MAC_1', 'Macau', drawbounds=False)

for nshape, seg in enumerate(m.Macau):

poly = Polygon(seg, facecolor='gold')

ax.add_patch(poly)

plt.show()

5.png

7.分省中国地图-A

import matplotlib.pyplot as plt

from mpl_toolkits.basemap import Basemap

from matplotlib.patches import Polygon

import matplotlib.colors

省份以及对应的数值

provinceDic = {"安徽":9, "北京":5, "重庆":8,

"福建":7, "甘肃":7, "广东":5, "广西":6, "贵州":7,

"海南":6, "河北":8, "黑龍江":8, "河南":9, "湖北":9,

"湖南":9, "江苏":8, "江西":10, "吉林":7, "辽宁":7,

"内蒙古":7, "宁夏":7, "青海":4, "山东":9, "上海":5,

"陕西":8, "山西":8, "四川":8, "天津":7, "新疆":1,

"西藏":3, "云南":7, "浙江":9, "香港":3, "澳门":2, "台湾":2}

颜色

colorDict = {"1":"F6F8FB", "2":"E8ECF4",

"3":"D2DAEA", "4":"BBC8E0", "5":"A5B6D6",

"6":"8EA3CB", "7":"7791C1", "8":"607EB6",

"9":"4A6DAD", "10":"1D4898"}

地图显示配置

plt.figure(figsize=(16,8))

m = Basemap()

m.drawcountries(linewidth=1.5)

m.drawcoastlines()

m = Basemap(llcrnrlon=77, llcrnrlat=14, urcrnrlon=140, urcrnrlat=51, projection='lcc', lat_1=33, lat_2=45, lon_0=100)

读取中国大陆shapefile

m.readshapefile('d:\China\gadm36_CHN_1', 'states', drawbounds=True)

读取台湾shapefile

m.readshapefile('d:\TWprovince\gadm36_TWN_1', 'taiwan', drawbounds=False)

读取香港shapefile

m.readshapefile('d:\HongKong\gadm36_HKG_1', 'HongKong', drawbounds=False)

读取澳门shapefile

m.readshapefile('d:\Macau\gadm36_MAC_1', 'Macau', drawbounds=False)

ax = plt.gca()

大陆地区进行上色

for i, shapedict in enumerate(m.states_info):

p = shapedict['NL_NAME_1'].split('|')

s = p[1] if len(p) > 1 else p[0]

for key in provinceDic.keys():

if key in s:

color = '#' + colorDict[str(provinceDic[key])]

ax.add_patch(Polygon(m.states[i], facecolor = color))

台湾上色

for nshape, seg in enumerate(m.taiwan):

color = '#' + colorDict['5']

poly = Polygon(seg, facecolor=color)

ax.add_patch(poly)

plt.show()

6.png

python中国地图代码 上色_用Python绘制中国地图相关推荐

  1. python中国地图代码 上色_如何让使用python绘制中国地图并给特定地区上色?

    在使用python Basemap绘制地图并给特定地区染色的过程中,有些地区无法上色.请问各位大神有无解决方法? 我是准备给14个地区染色,但是能成功上色的只有6个省和直辖市. 请问这是Basemap ...

  2. python手写代码面试_常见Python面试题 — 手写代码系列

    原标题:常见Python面试题 - 手写代码系列 作者: Peace & Love 来自:https://blog.csdn.net/u013205877/article/details/77 ...

  3. python植物大战僵尸代码例_用Python实现植物大战僵尸游戏,很酷

    以前很火的植物大战僵尸游戏, 本想在网上找个python版本游戏学习下,无奈没有发现比较完整的,那就自己来写一个把.图片资源是从github上下载的,因为图片资源有限,只能实现几种植物和僵尸. 功能实 ...

  4. python直接执行代码漏洞_修复Python任意命令执行漏洞

    Author:JoyChou@美丽联合安全 Date:20180605 1. 前言 今天遇到一个不好做白名单的Python命令执行漏洞修复的问题.由于是shell=True导致的任意命令执行,一开始大 ...

  5. python验证码 识别代码不准_谈谈Python进行验证码识别的一些想法

    用python加"验证码"为关键词在baidu里搜一下,可以找到很多关于验证码识别的文章.我大体看了一下,主要方法有几类:一类是通过对图片进行处理,然后利用字库特征匹配的方法,一类 ...

  6. python手写代码面试_常见Python面试题—手写代码系列

    原标题:常见Python面试题-手写代码系列 1.如何反向迭代一个序列 #如果是一个list,最快的方法使用reverse tempList = [1,2,3,4] tempList.reverse( ...

  7. python画圣诞树代码解读_使用Python画了一棵圣诞树的实例代码

    分享给大家一篇文章,教你怎样用Python画了一棵圣诞树,快来学习. 如何用Python画一个圣诞树呢? 最简单: height = 5 ​ stars = 1 for i in range(heig ...

  8. python电子相册制作代码大全_用Python和Conky做个电子相册,美化你的Linux桌面

    现在手机的拍照功能日趋强大,每个人电脑上想必都至少有几十个G的照片吧.全打印出来实在是太费钱了.而闲置的旧电脑完全可以利用起来播放这些照片.下面就介绍利用Conky和Python实现随机播放相片的功能 ...

  9. python绘图颜色代码大全_【python】Matplotlib作图常用marker类型、线型和颜色

    python作图中常常会考虑用什么颜色.marker.线型,这个资料查了又查,所以自己总结在这个地方,以便常用. 一.常用marker表示 1.普通marker 这类普通marker直接marker ...

  10. python控制台执行代码字符串_编写Python脚本以使用控制台命令执行

    研究是在底部,阅读之前...谢谢.在 我必须编写一个运行SQL查询的Python脚本.我创建了一个主类,名为SQLQuery.每个SQLQuery实例表示一个查询.脚本的结构必须如下所示:class ...

最新文章

  1. 【笔记】PIL 中的 Image 模块
  2. Outlook 2010 配置关联QQ邮箱
  3. Scala \和%运算小案例
  4. 【Linux】一步一步学Linux——login命令(210)
  5. [AlwaysOn Availability Groups] 健康模型 Part 2 ——扩展
  6. leetcode52. N皇后 II 最强解法直接秒杀100%
  7. FPGA图像处理 两路sensor的色调不一致
  8. redis 字符串基本操作
  9. windows10查看本机IP脚本
  10. 公众号运营实用小工具推荐
  11. 良心安利动物 恐龙unity3d模型素材网站
  12. Cannot find SourceMap 'XXX.js.map'问题解决
  13. 基于时频域统计特征提取的自然环境声音识别方法
  14. 操作系统(一)什么是操作系统
  15. Object自动排序的问题
  16. UIButton水平居中、垂直居中按钮 image 和 title
  17. 顺丰快递电话查询比网上查询更提前更详细
  18. android手机root status,相应黑科技梳理
  19. 王者荣耀坦克位思路和上分必读知识
  20. JDBC 学习笔记 day02 用 PreparedStatement 实现 CRUD 操作

热门文章

  1. 【mcuclub】温度传感器DS18B20
  2. 谁将打开腾讯业绩增速天花板?
  3. 编写程序:5类员工有对应封装类,创建Employee数组,若干不同的Employee对象,并实现增删改查功能(《黑马程序员》P144编程题加强版)
  4. Rust vs. Go:为什么他们在一起更好
  5. c语言间接级别不同_间接寻址不同问题?求解决!
  6. 关于C2100间接寻址的问题
  7. 《设计模式》学习笔记——开闭原则
  8. photoshop教程裁剪和拉直照片以改善构图
  9. 关掉计算机usb接口,bios中不小心把电脑的USB接口给关闭了,怎么样开启
  10. 超好用的在线思维导图网站