首页 > 编程知识 正文

python画世界地图(python绘制地图)

时间:2023-05-05 10:23:18 阅读:81446 作者:3759

Jupyter

首先,第一神器是Jupyter。 如果你是第一次使用,你可能不知道那个开发者制造这样的幽灵是干什么的。 说是博客系统也不像,说是web服务也不像,但它很有用。

我们传统的web开发首先考虑的是面向公众,所以你做服务器就是为成千上万的浏览器提供服务。

当然,Jupyter可以服务很多浏览器,但这对研究者也很方便。 对研究者来说很方便。 把代码像写文章一样直接写在输入框上,在这个页面上直接看到这个代码的结果,随时修改,随时展示。 混合有文字代码的是Markdown的扩展版。 最终,Markdown只能显示文字。 也可以添加图像

当然,也有人试图在Jupyter上运行PHP和Java代码,但显然不会成为气候。 因为Python这个语言天生就是脚本语言,所以将来有望移植到里面的可能只有Javascript。 这个商品也是脚本语言。 脚本语言的好处是,不用编译,每行就能得到一个结果。

纵观计算机语言的发展历史,这是一个从复杂到简单的过程。 c语言需要编译链接才能运行。 Java只有javac,可以将编译和链接合为一个。 PHP更简单,直接执行就行了。 甚至可以节省编译。

但是,还不直接。 因为必须创建. php文件保存磁盘才能运行。 Python和其他脚本语言可以直接在shell上运行,但最大的问题是可以运行并且不能保存。 要保存,可以像以前的方法一样,查找编辑器或vi,保存到文件中,然后运行。

Jupyter最大的优点是本身是可以执行脚本的shell环境,但同时自动保存这些脚本代码。 除了保存脚本代码,壮观的母鸡插入脚本代码的所有评论都不是普通的评论,各种格式的Markdown也可以一起保存,壮观的母鸡随时可以修改。

因此,兼具脚本案例和文件管理系统的优点。 从那以后,开发Python代码时,不需要在IDE中编写代码后在终端上运行,而是在一个网页上全部处理。

Java有这样的工具吗? PHP上有这样的工具吗? 不,必须选Python。

潘达斯

第二神器是Pandas。 如果导入csv文件,求出各列数据的平均值、最大值、最小值、方差,Java和PHP会怎么办?

首先打开文件,一行一行地读取,给出整个数据结构,进行循环计算,最后可能还需要fclose这个文件。

总之代码看起来很全,很麻烦。 另一方面,由于Python语言有一种叫做Pandas的神器,所以只需要一行代码:

DF=PD .读_ CSV (A.CSV ) )。

是的,从那以后,df就是这个数据帧了。 它本身是一个强大的数据结构,也可以看作是mysql数据库中的表。 删除各种查询、求合计、求平均都是一行代码。

所以有这么强大的库。 研究者出于什么理由选择Java?

sci工具包-联盟

第三神器scikit-learn一般简称为sclearn。 各种机器学习算法,只要基本上能想到,线性回归、逻辑回归、SVM、随机森林、最近的邻居等,各种算法都在其中。 (http://sci工具包- Learn.org/Stable

简单来说,只有你想不到,没有它就做不到。

这就是为什么做机器学习一定要选Python的原因。 你能帮我找一下在Java和PHP上有这样多种算法的库吗?

在这里,编辑也准备了python的学习资料。 跟进、转发、私信编辑“007”可以免费领取!

matplotlib

第四神器是ma

tplotlib。如果我让你根据上面csv文件里的信息,画一个图,用Java该怎么做?

你当然会去找第三方插件库,然后又是一通折腾,终于把图做出来,然后编译,然后运行。

如果我要改配色呢?如果我要求画地图呢?如果要画热力图呢?那个麻烦就不是一星半点,而对于matplotlib来说,简直就是小菜一碟。

简单的直方图就不说了,下面重点介绍如何用matplotlib配合Basemap画一个中国地图。

安装Basemap

先安装相应的组件。我假定你已经都安装好了Python以及Jupyter等等。如果没有安装的话,就去尝试一下brew install python3和brew install jupyter吧,网上有很多教程。

然后你需要用pip3 install很多我们下面可能需要用到的库。但是因为我们要用一个叫做Basemap的库,而这个库没有办法用简单的pip3 install安装,所以稍多两个步骤:

brew install geos pip3 install https://github.com/matplotlib/basemap/archive/v1.1.0.tar.gz

开始画图

启动Jupyter之后,我们还是本着从最简单的代码开始。先画一个世界地图:

import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap plt.figure(figsize=(16,8)) m = Basemap() m.drawcoastlines() plt.show()

前面两行引入相应的库,真正的代码就4行,够简单吧。第1行甚至可以不写,它定义了图的大小。第2行我们创建一个地图,第3行把海岸线画上,第4行显示这个地图,就是这样:

你用Java的4行代码画一个地图出来?

然后我们开始画上国家,又是1行代码:

m.drawcountries(linewidth=1.5)

就变成了这样:

用Java可能吗?用PHP可能吗?

如果我们想显示中国地图,只需要在创建Basemap时指定一下经纬度就行了:

m = Basemap(llcrnrlon=73, llcrnrlat=18, urcrnrlon=135, urcrnrlat=53)

然后就得到了中国地图:

看上去有点变形,这是因为我们没有添加任何投影的原因,Basemap提供24种不同的投影方式,你可以自己一个个试一下,比较常用的是tmdxn投影,我们添加一下:

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

这次终于看上去比较正常了:

我们想加上省的边界怎么办呢?Basemap缺省的包里没有中国的省区,只有美国的州,毕竟是美国人做的嘛。

不过好在世界很大,有专门的国际组织干这事,在这里(https://gadm.org/download_country_v3.html)你可以下载全世界任何一个国家的行政区划Shape文件,然后我们给它加上:

m.readshapefile( CHN_adm_shp/CHN_adm1 , states , drawbounds=True)

然后就得到了下图:

再往后,你还可以往图上改颜色啦,写数字啦,这些就留待你研究吧。总之,我想说的是,用Python画地图真的超容易。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。