我正在尝试使用传单包在R中创建交互式Choropleth地图。
我的最终输出应该是,当用户点击任何美国状态时,应该显示一个弹出窗口,其中显示状态名称和相应状态的幅度值。
以下是我正在使用的代码。我面临的问题是,每当我点击任何一个庄园(阿拉斯加州除外)时,弹出窗口都显示错误的州名。例如,如果我点击佛罗里达州,弹出窗口显示为爱达荷州。
有人请解释可能导致此类行为的潜在问题。
library(rgdal)
library(leaflet)
us_states <- readOGR(dsn="cb_2016_us_state_500k.kml")
plot(us_states)
s <- read.csv("us_state_mag_values.csv")
popup1 <- paste0("<span style='color: #7f0000'><strong>us state values</strong></span>",
"<br><span style='color: salmon;'><strong>Stae: </strong></span>",
s$state,
"<br><span style='color: salmon;'><strong>relative amount: </strong></span>",
s$mag
)
palette <- colorBin(c('#fee0d2',
'#fcbba1',
'#fc9272',
'#fb6a4a',
'#ef3b2c',
'#cb181d',
'#a50f15',
'#67000d'),
bins = c(1,10,20,25,30,35,40,47))
mymap <- leaflet() %>%
addProviderTiles("OpenStreetMap.Mapnik") %>%
addPolygons(data = us_states,
fillColor = ~palette(s$mag),
fillOpacity = 0.6,
color = "darkgrey",
weight = 1.5,
popup = popup1)%>%
addLegend(position = 'topleft',
colors = c('#fee0d2',
'#fcbba1',
'#fc9272',
'#fb6a4a',
'#ef3b2c',
'#cb181d',
'#a50f15',
'#67000d'),
labels = c('0%',"","","","","","",'100%'),
opacity = 0.6,
title = "relative<br>magnitude")
print(mymap)