我正在尝试填充一个美国地图,其中每个州都以平均薪资为标准进行填充(使用默认的颜色比例尺)。我有形状文件和一个数据框,它看起来像这样(数据已伪造):
data <- structure(list(State = c("Arkansas",
"Iowa",
"California",
"Idaho"),
MeanSalary = c(50000,60000,62000,55000)),
row.names=1:4, class = "data.frame")
这是我的代码:
library(tidyverse)
library(rgdal)
map <- readOGR(dsn = ".", layer = "usamap")
PlotData <- merge(map, data, by = "State")
到目前为止,一切都很正常。 我还可以创建一个空地图:
map_base <- ggplot(data = PlotData, mapping=(aes(x=long, y = lat, group = group)) +
geom_polygon(color = "black", fill = NA)
map_base
然而,我无法使用数值填充地图。
map_base <- ggplot(data = PlotData, mapping=(aes(x=long, y = lat, group = group)) +
geom_polygon(color = "black", fill = PlotData$MeanSalary)
map_base
我遇到了这个错误:
Error: Aesthetics must be either length 1 or the same as the data (2834334): fill
我哪里出了问题?