首页 > 解决方案 > 传单地图中的数据集和值之间的数据不匹配

问题描述

我正在尝试使用传单 R 包在县级创建一个等值线地图,我实际上是这样做的。但是当我检查我的数据文件和任何县的悬停文本时,我发现这些值不正确。例如检查 Conejos 县。有什么解释吗?还是一种更好的方法来处理数据并创建此地图而不会出现不匹配?

实际数据集值

传单地图价值

代码:

library(raster)
library(leaflet)
library(tidyverse)

# Get USA polygon data
USA <- getData("GADM", country = "usa", level = 2)

### Get data
mydata <- read.csv("https://www.betydb.org/miscanthus_county_avg_yield.csv",
                   stringsAsFactors = FALSE) %>%
  dplyr::select(COUNTY_NAME, Avg_yield)

### Check counties that exist in USA, but not in mydata
### Create a dummy data frame and bind it with mydata

mydata <- data.frame(COUNTY_NAME = setdiff(USA$NAME_2, mydata$COUNTY_NAME),
                     Avg_yield = NA,
                     stringsAsFactors = FALSE) %>%
  bind_rows(mydata)

### Create a color palette
mypal <- colorNumeric(palette = "viridis", domain = mydata$Avg_yield)

leaflet() %>% 
  addProviderTiles("OpenStreetMap.Mapnik") %>%
  setView(lat = 39.8283, lng = -98.5795, zoom = 4) %>%
  addPolygons(data = USA, stroke = FALSE, smoothFactor = 0.2, fillOpacity = 0.3,
              fillColor = ~mypal(mydata$Avg_yield),
              popup = paste("Region: ", USA$NAME_2, "<br>",
                            "Avg_yield: ", mydata$Avg_yield, "<br>")) %>%
  addLegend(position = "bottomleft", pal = mypal, values = mydata$Avg_yield,
            title = "Avg_yield",
            opacity = 1)

标签: rleafletgis

解决方案


推荐阅读