Abe*_*Abe 10 plot google-maps r tooltip
我在美国县级网站www.betydb.org上看过一个互动的等值线图.我想使用R重现类似的地图.我只想要地图和工具提示(不是所有不同缩放级别的切片,或者切换地图的能力)
该地图目前在ruby中创建,弹出窗口(在左下角)查询MySQL数据库.编写它的程序员继续前进,我不熟悉Ruby.

在这里,我将从一个csv文件开始.数据包括州和县名,州和县FIPS.我想情节Avg_yield.
mydata <- read.csv("https://www.betydb.org/miscanthus_county_avg_yield.csv")
colnames(mydata)
# [1] "OBJECTID" "Join_Count" "TARGET_FID" "COUNTY_NAME" "STATE_NAME" "STATE_FIPS"
# [7] "CNTY_FIPS" "FIPS" "Avg_lat" "Avg_lon" "Avg_yield"
Run Code Online (Sandbox Code Playgroud)
我可以使用googleVis包在州一级进行绘图
library(googleVis)
p <- gvisGeoChart(data = mydata, locationvar="STATE_NAME", colorvar = 'Avg_yield',
options= list(region="US", displayMode="regions",
resolution="provinces"))
plot(p)
Run Code Online (Sandbox Code Playgroud)

这提供了状态级着色.我的问题是,如何在县级(而不是州级)解决方案中使用颜色和工具提示来获得类似的内容?
在gvisGeoChart帮助(下区和分辨率)和谷歌的图表记录表明,这是不可能的,但文档是如此广泛,目前尚不清楚是什么我的其他选项,内R.
那么,有没有办法在县级获得带有工具提示和着色的地图?
这是一个来自 2013 年的问题。我不确定那个时候leaflet包裹是否已经出来了。现在是2017年底,你的任务是有可能完成的。如果您仍然需要执行类似的任务,我想为您留下以下内容。在这种情况下,数据集中缺少一些县。这些县存在于美国多边形数据中,但在mydata. 所以我将这些县添加到mydata使用setdiff()和bind_rows()。绘制传单地图时,您需要指定调色板。Avg_yield是一个连续变量。所以你使用colorNumeric(). 我留下了一个屏幕截图,显示了传单地图的一部分。
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)
Run Code Online (Sandbox Code Playgroud)