编辑7:
经过一段时间的帮助,我已经能够得到一张接近我需要的结果的地图。但我仍然需要在地图上通过州界,但我无法弄明白。为了制作一个适当的可重复示例,我需要链接到数据集,因为dput非常大。
为了简单起见,我只对三个状态进行了子集,但是边界线没有出现。我希望能够让边界线作为白线通过图表,就像它们在地图的其余部分一样。谢谢你的帮助。
数据集:
https://www.dropbox.com/s/0evuvrlm49ab9up/PRISM_1895_db.csv?dl=0
代码:
PRISM_1895_db <- read.csv("PRISM_1895_db.csv")
regions<- c("north dakota","south dakota","nebraska","kansas","oklahoma","texas","minnesota","iowa","missouri","arkansas", "illinois", "indiana", "wisconsin")
ggplot() +
geom_polygon(data=subset(map_data("state"), region %in% regions), aes(x=long, y=lat, group=group), col="white") +
geom_point(data = PRISM_1895_db2, aes(x = longitude, y = latitude, color = APPT), alpha = .5, size = 3.5)
图表:
答案 0 :(得分:2)
绘制图层的顺序很重要。如果您希望将while行放在最上面,那么您最后需要添加它们。如果你想要背景中的黑色形状,你首先需要它们。所以基本上你需要将状态分成两个绘图:背景和轮廓。
ggplot() +
geom_polygon(data=subset(map_data("state"), region %in% regions), aes(x=long, y=lat, group=group)) +
geom_point(data = PRISM_1895_db, aes(x = longitude, y = latitude, color = APPT), alpha = .5, size = 3.5) +
geom_polygon(data=subset(map_data("state"), region %in% regions), aes(x=long, y=lat, group=group), color="white", fill=NA)
产生