麋鹿分布图制作(二)—— 用Python和R在地图上打点

news/2024/11/24 21:29:41/

上期用Python调用百度API得到地点的经纬度, 今天就将这些点标注在地图上。
首先我们用R语言来标注。
文中用到的文件已上传到Github。

library(rgdal)
library(ggplot2)
library(mapproj)
library(xlsx)# 设置一下工作路径
setwd('D:/class/zonglv')
# 读取文件
milu = read.xlsx('milu.xlsx', 1, encoding = 'UTF-8')
# 读取中国地图
china_map <- readOGR('./mapdata/bou2_4p.shp')
# 转化为数据框
china_map <- fortify(china_map)p = ggplot() +geom_polygon(data=china_map, aes(x=long, y=lat, group = group), colour="grey60", size = 0.25) +geom_point(data = milu, aes(x = lon,y = lat, color = time, shape = species), size = 1.5) + coord_map("polyconic")
p

画出的地图如下:
r的地图

接下来用python的basemap画一次。

import time
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
import pandas as pd
import numpy as np

在这些调用的模块中,basemap的安装可能会难一点,这里请参考Basemap手册,另外,Basemap tutorial也不错,参考这两个链接应该就可以画很多图了,但是我在跑Basemap的时候很多关键的代码都会出现Can’t set attribute的报错,目前还没有找到原因,勉强跑了一个图出来,如果有大神看到这个帖,麻烦告知一下解决方法。

ml = pd.read_excel('milu.xlsx')
# 我们还是先把数据读入进来
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)
m.readshapefile('shapefile/gadm36_CHN_1', 'states', drawbounds=True)
lats = list(ml['lat'])
lons = list(ml['lon'])
x, y = m(lons, lats)
m.scattter(x,y,3,marker = 'o', color = 'red')
plt.show()

python做的地图

在这里需要注意的是,这个代码无论是在Jupyter notebook还是在sublime text 3中运行都是会报错的,但是在jupyter notebook中是可以跑出地图来的,如上图。

在两个程序之中跑的代码,我们可以看到,有些点的位置是不准确的,我不知道这是由于百度地图API给的经纬度不够准确还是我下载的shp文件和百度地图不太兼容,如果我以后找到原因会更新本文。



版权声明:作者保留权利。文章为作者独立观点,不代表数据人网立场。严禁修改,转载请注明原文链接:http://shujuren.org/article/775.html
数据人网:数据人学习,交流和分享的平台,诚邀您创造和分享数据知识,共建和共享数据智库。


http://www.ppmy.cn/news/378842.html

相关文章

古树幻灯片图片

古树幻灯片图片 下载: http://download1.csdn.net/down3/20070621/21131147670.rar

计算机系学生thinkbook,设计师笔记本电脑推荐 ThinkBook 15p视觉系创造本你值得拥有...

很多设计专业毕业的同学&#xff0c;在找到工作后都会计划购置设计必备的装备——笔记本电脑&#xff0c;或者说是一台专业的笔记本电脑&#xff0c;在挑选一台设计专业用的笔记本往往对配置等方面有更高的要求&#xff0c;设计专业的笔记本该看重哪个方面来购买&#xff1f;你…

轻薄性能本和高颜值电脑推荐

推荐电脑 ‘’’ 如下价格按照 16g 内存&#xff0c;512g 固态硬盘参照 仅供参考 ‘’’ 型号耗时cpugpu价格重量rog幻135-106900hs4050ti104991.3kgrog幻145-106900hs406094691.7KGrog幻14 星光版5-106900hs406094691.7KG灵刃145h-6900hs306089992.8kg戴尔xps1012 代i5集成显…

推荐四款自用的电脑神器

作为一个经常鼓捣电脑的小编来说&#xff0c;无论是写文章、截图、办公方面都缺少不了一些好用的软件&#xff0c;今天就给大家盘点一些我推荐用的办公效率工具&#xff0c;让你的效率事半功倍。 写文章神器 以前写文章一直是在公众号编辑上直接写的&#xff0c;缺点就是格式…

给设计小白推荐几款笔记本电脑与工具

你是否即将接触设计行业&#xff1f;你是否在为买设计类的电脑发愁&#xff1f;你是否想尝试使用设计工具&#xff1f;看过来&#xff01;这里给你一些参考选项。 1.MacBookAir13.3 优点&#xff1a; 新一代的MBAIR都支持视网膜屏幕了&#xff0c;然后MAC的系统流畅和干净程度…

云迁移为业务赋能,跨出数字化转型第一步

新钛云服已累计为您分享752篇技术干货 云迁移如何赋能企业业务 随着科技的迅猛发展和数字化转型的浪潮席卷全球&#xff0c;越来越多的企业开始意识到云计算的重要性和潜力。在这个数字化时代&#xff0c;企业不再满足于传统的IT架构和数据中心&#xff0c;而是追求更高效、灵活…

【AUTOSAR】UDS协议的代码分析与解读(二)----ECU诊断协议概述

UDSO诊断服务技术规范 1 范围 本规范规定了增强型诊断需求的诊断服务部分的内容&#xff0c;定义了通用电子系统需遵循的UDS通用执行 规则。 本规范适用于集团x事业部所有平台车型&#xff0c;所有电子控 制单元(ECU) 的诊断需求&#xff0c;均需按此规范执行。 本规范定义的…

R语言绘制行政边界图

要用R语言绘制河南省的行政图&#xff0c;可以使用rgdal、rgeos等库来读取和处理地理数据。在本例中&#xff0c;我们将使用maptools库读取分层的地图边界数据&#xff08;shapefile&#xff09;&#xff0c;并使用ggplot2库将这些图形可视化。 以下是一份代码&#xff0c;用于…