为什么我的《传单》中的鹅卵石梯度不准确?

时间:2018-08-03 16:50:09

标签: r leaflet choropleth gradients

我正在尝试使用形状文件和传单来绘制曲线图。我将填充列合并到形状文件数据框中,并使用该列作为渐变的基础。合并是成功的,因为人口与县正确匹配。

leaflet(data = countiesshp) %>%
addProviderTiles(providers$Esri.WorldStreetMap) %>%
addPolygons(fillColor =~colorQuantile("Greens", countiesshp@data$population.y)(countiesshp@data$population.y),
          fillOpacity = 0.7,
          color = 'Black',
          weight = 1)

当我得到输出时,我可以清楚地看到渐变不能正常工作。

dataframe

map

如您所见,帕克斯县的人口非常少,但是坡度表明该人口非常高。阿拉帕霍县人口众多,但是坡度表明它非常低。我真的很感谢任何帮助!谢谢!

编辑:当我添加了悬停功能后,我可以看到每个县都读取了错误的数据,例如,当我将悬停在Arapahoe县(科罗拉多州)上时,它显示的是15242,而不是572003。我添加了图像3来显示 Arapahoe hover

1 个答案:

答案 0 :(得分:0)

没有数据,很难确定确切的问题是什么,但这有两个想法:

1-似乎您是在人口中读取字符串,即应将Arapahoe县的字符串转换为数字,即“ 572,003”。

2-尝试为专门用于合并SPDF的sp::merge函数使用merge

我对您的代码进行了一些修改,以使示例更加可重复:

coshp <- tigris::counties(state = "Colorado")

library(leaflet)

data <- data.frame(NAME = c("Arapahoe", "Boulder", "Clear Creek", "Larimer"),
                   population = c("572,003", "294,567", "9,088", "299,630"))
data$population <- as.numeric(gsub(",", "", data$population))

coshp_merged <- sp::merge(coshp, data)

leaflet(data = coshp_merged) %>%
  addProviderTiles(providers$Esri.WorldStreetMap) %>%
  addPolygons(fillColor =~colorQuantile("Greens", coshp_merged$population)(coshp_merged$population),
              fillOpacity = 0.7,
              color = 'Black',
              weight = 1)

哪个产生了:

enter image description here