【问题标题】:Adding density to a spatial map in R在 R 中向空间地图添加密度
【发布时间】:2018-08-24 11:15:46
【问题描述】:

目标:向地图添加密度

经过测试的包:ggplot、ggmap、sp、rgdal

基于 rdgal 包,我有一个特定状态的地图。

library(rgdal)
us<-getData('GADM', country='USA', level=2)  
WV <-subset(us, NAME_1=="West Virginia")
plot(WV)

我想在地图上绘制一些处方数据。基于 geocode() 方法,在以下帖子中指定: R convert zipcode or lat/long to county,我把县名转换成一组经纬度坐标。

library(ggmap)
WV.opioid <- opioid.dat[opioid.dat$State.Name == "West Virginia",]
WV.coordinates <- geocode(as.character(WV.opioid$County.Name))
WV.opioid <- cbind(WV.opioid, WV.coordinates)
WV.opioid <- WV.opioid[which(!is.na(WV.opioid$lat)),]
rownames(WV.opioid) <- NULL

我试图在地图上绘制一列数据集:

 library(ggplot2)
 #opioid data from following link: https://www.datafiles.samhsa.gov/study-series/national-survey-drug-use-and-health-nsduh-nid13517
 opioid.map <- ggplot(WV.opioid, aes(x = lon, y = lat, 
                             fill = cut_number(Diff.Opioid.Prescription.Rates, 
 5))) +
 geom_polygon(color = "gray10", size = 0.2) +
 coord_equal() +
 viridis::scale_fill_viridis(discrete = TRUE) +
 labs(title = "Test",
 fill = NULL) +
 theme_void() +
 theme(legend.position = "bottom",
 panel.background = element_rect(fill = NA, colour = "#cccccc"))
 opioid.map

我不确定如何修复这个情节,希望能得到帮助。我也尝试使用 rdgal 包并将我的数据添加到 SpatialPoints 对象,但没有成功。

【问题讨论】:

  • 能否将您正在使用的包添加到您的代码中?
  • 您的代码不可重现。没有任何名为rdgal 的包。 opioid.dat 哪里来的?
  • @Tung 我已经在我的帖子中提到了你的 cmets。

标签: r ggplot2 gis geospatial


【解决方案1】:

目前尚不清楚阿片类药物数据的空间分辨率,但我建议找到适合它的 shapefile,而不是使用纬度/经度县质心。如果您不对modifiable areal unit problem 进行更正,则这种类型的转换并不是真正正确的。

如果阿片类药物数据采用邮政编码,tigris 包中存在该分辨率的 shapefile。

我认为主要问题在于您在第二个代码块中进行的这种转换。一旦您不再这样做,就应该相当简单地绘制处方率的叶绿素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 2019-04-29
    • 1970-01-01
    • 2022-11-13
    • 2013-05-19
    • 2023-03-28
    相关资源
    最近更新 更多