我想制作一张地图,其中根据一种标准对状态进行着色,并根据不同的标准对阴影线进行阴影处理(或以其他方式加以区分)。到目前为止,我所拥有的是
library(ggmap)
library(mapdata)
library(ggplot2)
library(dplyr)
region<-c("california","nevada","oregon","washington")
var1<-c(0,1,0,1)
var2<-c(3,4,4,3)
my_data<-data.frame(region, var1, var2)
all_states_map <- map_data("state")
Total <- inner_join(all_states_map,my_data, by = "region")
Total$var1<-as.factor(Total$var1)
my_map <- ggplot() + geom_polygon(data=Total, aes(x=long, y=lat, group = Total$group, fill=Total$var1),colour="white",
show.legend=TRUE) + scale_fill_manual(values=c("blue","gray"))
所以现在我的状态是根据var1是0还是1进行颜色编码的。是否有一种方法可以在其上面覆盖某些内容,以交叉填充var2为3的状态,而忽略var2为4的状态呢?
这可能不理想,但可能会有所帮助?
library(ggmap)
library(mapdata)
library(ggplot2)
library(dplyr)
library(sp)
region<-c("california","nevada","oregon","washington")
var1<-c(0,1,0,1)
var2<-c(3,4,4,3)
my_data<-data.frame(region, var1, var2)
all_states_map <- map_data("state")
Total <- inner_join(all_states_map,my_data, by = "region")
Total$var1<-as.factor(Total$var1)
randomPoints <- NULL
# For each region find a set of points inside each state
for(i in region){
sub <- subset(Total, region == i)
sub.sr = SpatialPolygons(list(Polygons(list(Polygon(sub[,1:2])), "a")))
smple <- as.data.frame(spsample(sub.sr, n = 100, "regular"))
temp <- data.frame(x = smple[,1], y = smple[,2], region = i, var1 = unique(sub$var1), var2 = unique(sub$var2))
randomPoints <- rbind(randomPoints, temp)
}
ggplot() +
geom_polygon(data=Total, aes(x=long, y=lat, group = group, fill=var1), color = "white") +
geom_point(data = randomPoints, aes(x = x, y = y, shape = as.factor(var2)), size = 1) +
scale_shape_manual(values = c(1, 2))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句