在 Shinny Web 应用程序中绘制缺失状态图
Plotly map missing states in Shinny web application
我正在尝试在 Shinny 中使用 Plotly 创建一个交互式绘图,显示所有按人口颜色编码的美国县。但是,当我 运行 以下代码作为 server.R 函数的一部分时,加利福尼亚州、阿拉巴马州、亚利桑那州、科罗拉多州和阿肯色州丢失了:
output$countyPolygonMap <- renderPlotly({
url <- 'https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json'
countyGeo <- rjson::fromJSON(file=url)
## Obtaining the geographical file for all U.S. counties
url2<- "https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv"
df <- read.csv(url2, colClasses=c(fips="character"))
names(df)[2] = "unemployment"
## obtaining the unemployment rate data
url3 <- "https://storage.googleapis.com/kagglesdsdata/datasets%2F579969%2F1374720%2Fus_county.csv?GoogleAccessId=gcp-kaggle-com@kaggle-161607.iam.gserviceaccount.com&Expires=1596139521&Signature=easqHBFZ757D%2F7LVyDM%2BF%2FIMU6l2OEY6giqVvIC0l0tSSe%2Fohq6NC%2FLFKbsIV6FdFALmPUqG9vATbg0cuRVVwGQMsoUOjlW%2BZLhTVluxbYh1dDE1MTFzWRpzlSH18ejIwqa61F0ARJ%2Bpq6ryIfJuE7wQQ1rOCEpaVB9m%2FP7QaZm2gBJeHYLXJXcvO8w1p0sEnqRsGAesg2Fgj%2Bv8unPGNtDJekEWuNbl1K9k7CAaZWjG2QQ94LB9tAPvfKqykDWDD7w6yN3YFkcfu7kUmjs0CybnMD6IP%2FM5hvJXuUTIie0MOMTWt5bIua4qcTHxIxR5l918y1H17JA2HHrnKLVY%2BA%3D%3D"
county <- read.csv(url3)
countyPolygonMap <- plot_ly() %>% add_trace(
type="choroplethmapbox",
geojson=countyGeo,
locations=county$fips,
z=~county$population,
colorscale="Viridis",
zmin=0,
zmax=12,
marker=list(line=list(width=0),opacity=0.5)
) %>% layout(
mapbox=list(
style="carto-positron",
zoom =2,
center=list(lon= -95.71, lat=37.09))
);
countyPolygonMap;
## generating the interactive plotly map
})
我仔细检查了源数据,没有问题或NA。 R 也没有收到任何警告或错误。你能帮我吗?
fips
需要5位数。您可以将其转换为 county$nfips <- sprintf("%05d",county$fips)
。然后在你的 plotly 中使用 nfips
,你会得到以下输出:
请注意,您还遗漏了阿拉斯加和康涅狄格州 - 均为 4 位数 fips
。
我正在尝试在 Shinny 中使用 Plotly 创建一个交互式绘图,显示所有按人口颜色编码的美国县。但是,当我 运行 以下代码作为 server.R 函数的一部分时,加利福尼亚州、阿拉巴马州、亚利桑那州、科罗拉多州和阿肯色州丢失了:
output$countyPolygonMap <- renderPlotly({
url <- 'https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json'
countyGeo <- rjson::fromJSON(file=url)
## Obtaining the geographical file for all U.S. counties
url2<- "https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv"
df <- read.csv(url2, colClasses=c(fips="character"))
names(df)[2] = "unemployment"
## obtaining the unemployment rate data
url3 <- "https://storage.googleapis.com/kagglesdsdata/datasets%2F579969%2F1374720%2Fus_county.csv?GoogleAccessId=gcp-kaggle-com@kaggle-161607.iam.gserviceaccount.com&Expires=1596139521&Signature=easqHBFZ757D%2F7LVyDM%2BF%2FIMU6l2OEY6giqVvIC0l0tSSe%2Fohq6NC%2FLFKbsIV6FdFALmPUqG9vATbg0cuRVVwGQMsoUOjlW%2BZLhTVluxbYh1dDE1MTFzWRpzlSH18ejIwqa61F0ARJ%2Bpq6ryIfJuE7wQQ1rOCEpaVB9m%2FP7QaZm2gBJeHYLXJXcvO8w1p0sEnqRsGAesg2Fgj%2Bv8unPGNtDJekEWuNbl1K9k7CAaZWjG2QQ94LB9tAPvfKqykDWDD7w6yN3YFkcfu7kUmjs0CybnMD6IP%2FM5hvJXuUTIie0MOMTWt5bIua4qcTHxIxR5l918y1H17JA2HHrnKLVY%2BA%3D%3D"
county <- read.csv(url3)
countyPolygonMap <- plot_ly() %>% add_trace(
type="choroplethmapbox",
geojson=countyGeo,
locations=county$fips,
z=~county$population,
colorscale="Viridis",
zmin=0,
zmax=12,
marker=list(line=list(width=0),opacity=0.5)
) %>% layout(
mapbox=list(
style="carto-positron",
zoom =2,
center=list(lon= -95.71, lat=37.09))
);
countyPolygonMap;
## generating the interactive plotly map
})
我仔细检查了源数据,没有问题或NA。 R 也没有收到任何警告或错误。你能帮我吗?
fips
需要5位数。您可以将其转换为 county$nfips <- sprintf("%05d",county$fips)
。然后在你的 plotly 中使用 nfips
,你会得到以下输出:
请注意,您还遗漏了阿拉斯加和康涅狄格州 - 均为 4 位数 fips
。