用R中的工具提示打印县级数据
我在www.betydb.org上看到了美国县级的互动choropleth地图。我想用R复制一个类似的贴图。我只想要贴图和工具提示(不是所有不同缩放级别的平铺,也不是切换贴图的能力) 地图当前是在中创建的,弹出窗口(左下角)查询MySQL数据库。编写它的程序员已经离开了,我对Ruby不太熟悉 在这里,我将从一个csv文件开始。数据包括州和县的名称,以及州和县的FIP。我想绘制用R中的工具提示打印县级数据,r,google-maps,plot,tooltip,R,Google Maps,Plot,Tooltip,我在www.betydb.org上看到了美国县级的互动choropleth地图。我想用R复制一个类似的贴图。我只想要贴图和工具提示(不是所有不同缩放级别的平铺,也不是切换贴图的能力) 地图当前是在中创建的,弹出窗口(左下角)查询MySQL数据库。编写它的程序员已经离开了,我对Ruby不太熟悉 在这里,我将从一个csv文件开始。数据包括州和县的名称,以及州和县的FIP。我想绘制平均产量 mydata <- read.csv("https://www.betydb.org/miscanthu
平均产量
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"
这提供了状态级别的着色。我的问题是,如何在县级(而非州级)分辨率下通过颜色和工具提示获得类似的内容
gvisGeoChart
帮助(在区域和分辨率下)和指示这可能不可能,但文档太多,不清楚R中的其他选项是什么
那么,有没有办法在县一级获得带有工具提示和颜色的地图呢?这是一个来自2013年的问题。我不确定当时是否有传单。现在是2017年底,您的任务有可能完成。如果您仍然需要执行类似的任务,我想为您留下以下内容。在这种情况下,数据集中缺少一些县。这些县存在于美国多边形数据中,但它们在
mydata
中缺失。因此,我使用setdiff()
和bind_rows()
将这些县添加到mydata
。绘制传单地图时,需要指定调色板<代码>平均收益率是一个连续变量。所以您使用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)
库(光栅)
图书馆(单张)
图书馆(tidyverse)
#获取美国多边形数据
美国%
setView(纬度=39.8283,液化天然气=-98.5795,缩放=4)%>%
添加多边形(数据=美国,笔划=假,平滑因子=0.2,填充不透明度=0.3,
fillColor=~mypal(mydata$Avg_收益率),
弹出=粘贴(“地区:”,美国$NAME_2,
”,
“平均收益率:”,mydata$Avg_收益率,“
”)%%
addLegend(position=“bottomleft”,pal=mypal,value=mydata$Avg_收益率,
title=“平均收益率”,
不透明度=1)
我一直在绘制类似的美国地图。谷歌图表有一个选项可用于R:
resolution=“metros”
这张地图显示了整个北美。你如何改变它只显示美国包括阿拉斯加和夏威夷?
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)