我正在尝试用两点制作Tmap,但我遇到了一些问题。
`library(tmap)
library(maps)
library(sf)
library(USAboundaries)
#Open soil pit location data
data<-read.csv("SoilPit_Locations___.csv")
#Converting locations to an sf object
points<-st_as_sf(data,coords=c("Longitude","Latitude"),crs=4326)
#Set up map mode as view for an interactive map
tmap_mode("plot")
#Set up style as natural to view topography
tmap_style("natural")
#Map us borders and add points for locations as dots
#tm_shape(us) + tm_borders("black", lwd = .5) +
m=tm_shape(points)+tm_dots()
m
tmap_save(m, "my_mapp.png")`
我遇到的问题是,当我尝试运行我的代码的两个点是在地图的角落,我想把它们绘制在新墨西哥州的地图上,这样他们可以看起来更好。
我已经尝试从世界地图中提取NM状态边界,但是我没有成功。
如果你这样做了:
library(USAboundariesData)
那么你得到states_contemporary_lores
(以及其他东西),这是美国的州边界,所以你可以像这样子集NM:
nm = states_contemporary_lores[
states_contemporary_lores$state_abbr=="NM",
]
然后nm
是一个sf
对象也就是新墨西哥。您可以使用tm_shape(nm) + tm_borders()
在tmap
中映射它,然后添加您拥有的任何其他图层。