我正在尝试在ggplot2图中为一个图例添加一个基线。但是,我无法让它发挥作用。有人可以帮忙吗?
示例代码:
## dummy script to test legends with ablines
library(ggplot2)
df1 <- iris
plot12345 <- ggplot(data = iris) +
geom_point(aes(x = Sepal.Length, y = Sepal.Width, colour = "dummy1")) +
geom_abline(aes(colour = "dummy2"), intercept = -3, slope = 1) +
scale_colour_manual(values = c("dummy1" = "blue", "dummy2" = "red"))
答案 0 :(得分:1)
为了显示该行的图例,我们可以将intercept
和slope
放入aes
。 (我不知道它是如何工作的,但在Hadley的ggplot2书的第146页有类似的例子);
为了让图例只显示dummy2的行而只显示dummy1的点,我们必须操纵guide_legend
来覆盖默认的图例美学。 linetype = c(0, 1)
表示空白和实线。
这是最终代码:
ggplot(data = iris) +
geom_point(aes(x = Sepal.Length, y = Sepal.Width,
colour = "dummy1")) +
geom_abline(aes(colour = "dummy2", slope = 1, intercept = -3)) +
scale_color_manual(
values = c("dummy1" = "blue", "dummy2" = "red"),
guide = guide_legend(
override.aes = list(pch = c(16, NA), linetype = c(0, 1)))
)