다른 데이터 프레임의 데이터를 사용하여 ggplot2
에지도를 작성하려고합니다. 모든 것이 예상대로 작동하고 나는 좋은지도를 얻을 지금까지ggplot2에서 범례를 추가하려면 어떻게해야합니까?
library(maptools)
xx <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1], IDvar="FIPSNO", proj4string=CRS("+proj=longlat +ellps=clrk66"))
xx.sub1 <- subset(xx, xx$FIPSNO < 37010)
xx.sub2 <- subset(xx, xx$FIPSNO > 37010)
[email protected]$id <- rownames([email protected])
xx.sub1.points <- fortify(xx.sub1, region="id")
xx.sub1.df = join(xx.sub1.points, [email protected], by="id")
[email protected]$id <- rownames([email protected])
xx.sub2.points <- fortify(xx.sub2, region="id")
xx.sub2.df = join(xx.sub2.points, [email protected], by="id")
ggplot(xx.sub2.df) +
aes(long, lat, fill = (SID79/BIR79)*1000, group = group) +
geom_polygon() + geom_path(color="grey80") +
coord_equal() +
scale_fill_gradientn(colours = brewer.pal(7, "YlOrBr")) +
geom_polygon(data = xx.sub1.df, fill = "grey50") +
geom_path(data = xx.sub1.df, color="grey80") +
labs(fill = "Mapped value", title = "Title")
: 나는 그러나 변경하려면 무엇
는 xx.sub1.df
에서 데이터에 대해 별도의 범례를 추가하는 것입니다 - 이후 모든 다각형은 회색으로 채워져 있습니다. 추가 항목 하나가되기를 바랍니다.
어떻게하면됩니까?
재현 가능한 예 (http://tinyurl.com/reproducible-000)주세요. 이 문제를 해결할 수있는 표준 방법은 데이터 세트를 병합하여 각 데이터 세트의 원래 데이터 프레임을 식별하는 요인 변수를 포함시킨 다음 미적 감각을 사용하는 것입니다. 'scales' 패키지가 다른 방법이 있는지 확인하십시오. –
@BenBolker Roger. 예제가 추가되었습니다. 한 가지 방법으로 모든 것을 갖기가 더 쉬울 것이라는 것을 알고 있습니다. 그러나, 나는 종종 서로 다른 계층의 데이터로 작업한다. (GIS 배경에서 나오는 편견일지도 모른다) 목에 통증이 생길 수있다. 그리고이 특별한 예에서는 몇 가지 다각형을 선택하고 빠른 방법으로 '강조'또는 '마스크'해야합니다. – radek
업데이트 된 히트 맵을 사용하여 질문에 답변 할 수 있도록 데이터의 '출력'을 추가 할 수 있습니까? 나는 그것을 추측하고있다 : (1)'xx.sub2'의 2 개의 열만 사용하고, (2)'xx.sub1'에 존재하는 상태는 회색으로 표시됩니다. 따라서 합류하지 않는 것은 짜증나는 것처럼 보입니다. 단순히'xx.sub2'에 인수를'xx.sub1'에있는 항목에 추가하고,'scale_fill_manual'을 사용하여 범례의 색상을 조정할 수 있습니다. –