Ответ 1
Я не уверен на 100%, это то, что вы хотите, но вот как я подхожу к проблеме, насколько я ее понимаю. Если мы сопоставим некоторые неиспользованные geom
с любыми данными из xx.sub1.df
, но сделаем их невидимыми на графике, мы все равно можем получить легенду для этого geom
. Здесь я использовал geom_point
, но вы могли бы сделать его другим.
p <- 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")
#Now we add geom_point() setting shape as NA, but the colour as "grey50", so the
#legend will be displaying the right colour
p2 <- p + geom_point(data = xx.sub1.df, aes(size="xx.sub1", shape = NA), colour = "grey50")
Теперь нам просто нужно изменить размер и форму точки в легенде и изменить название легенды (спасибо @DizisElferts, который продемонстрировал это ранее).
p2 + guides(size=guide_legend("Source", override.aes=list(shape=15, size = 10)))
Конечно, вы можете изменить способ работы ярлыков или что угодно, чтобы выделить то, что вы хотите показать.
Если это не то, что вам нужно, дайте мне знать!