阅读文本大概需要 5 分钟。
大家还记得中学课本里的一首现代诗歌吗?
乡愁
现代 · 余光中
小时候,
乡愁是一枚小小的邮票,
我在这头,
母亲在那头。长大后,
乡愁是一张窄窄的船票,
我在这头,
新娘在那头。
中学时,当我们学到余光中的「乡愁」,可能我们当时并不能完全理解这首现代诗歌,随着我们年龄的增长,我们外出求学,毕业后奔赴北上广。那年少时的一枚邮票,那青年时的一张船票,随着科技的发展,如今就是一次视频聊天和火车票。
即将春节了,不管的你身在何方,都会回家和家人过一个团圆年。此时的你,身处地图的哪个角落?春节时会去到哪个角落呢?今天就用 Python 画一下世界地图和中国地图。
项目环境
语言:Python 3.6
编辑器:Pycharm
安装库
主要用到的库是 basemap 库,这个库是 matplotlib 库中一个用于在 Python 中绘制地图上的 2D 数据的工具包。
1、安装 geos 库:Python 的 basemap 库是建立在 geos 中的,所以得先安装 geos,cmd 命令下,定位到 pip 所在的文件夹,使用 pip 命令安装。
pip install geos
2、下载 pyproj 和 basemap 两个包的 whl 文件,下载地址如下,请下载合适的版本。
http://www.lfd.uci.edu/~gohlke/pythonlibs/
3、cmd 命令下先进入到上面下载的库的路径下,使用 pip 命令安装 pyproj 和 basemap 库。
pip install basemap-1.2.0-cp36-cp36m-win_amd64.whl
pip install pyproj-1.9.6-cp36-cp36m-win_amd64.whl
导入
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
from matplotlib.patches import Polygon
常见用法
map = Basemap() # 新建一张世界地图
map.drawcoastlines() # 画出海岸线
plt.show() # 打开窗口显示运行结果
世界地图
通过上面常见用法我们就可以勾勒出一个平面型的世界地图了。
效果图如下,平面图,黑白的,不美观。
优化下,把平面图投影成球形图,给大地和湖泊加上不同的颜色。
这样就会美观很多了
中国地图
接下来,我们创建地图时改一下投影方式,并加入 drawcountries 方法。
运行代码,中国地图便出现了。
这样我们只是看到中国的轮廓图,省与省之间的分界线没有显示出来,因为这是老外制作的库,中国省份的边界默认没有,这需要我们手动下载包,下载网站如下:
https://gadm.org/download_country_v3.html
下载 中国 China 和 台湾 Taiwan 的 Shapefile 文件,注意:不要忘了 Taiwan,因为:台湾是中国领土不可分割的一部分!
下载文件解压后用 readshapefile 方法读取下载的文件。
运行代码,效果图如下:
颜色区分
为了突出中国的地图,我们用红色来区分。我们把 facecolor 参数设置成 r,r 是 red 的简写。
同样,不要忘了把台湾也加上同样的颜色,台湾是中国领土不可分割的一部分!
运行代码后,就能看到中国地图了。
源码在公众号回复「地图」获取。
最后,猪大家猪年暴富
觉得有意思的大家帮忙点点好看,戳下鸡腿,也可以转发给更多的伙伴。
print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!\n");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"欢迎点击下方小程序留言讨论。
「pk哥」以梦为马,不负韶华
长按识别二维码关注
欢迎点击下方小程序留言讨论。
推荐阅读: