添加时我在图例中遇到一些奇怪的行为geom_smooth()
and a geom_vline()
在我的 ggplot2 图表中。这是一个可重现的示例:
library(ggplot2)
n <- 60
set.seed(123)
df <- data.frame(Area = sample(c("A", "B", "C", "D"), size = n, replace = TRUE),
x = runif(n),
y = runif(n),
Type = sample(c("I", "II"), size = n, replace = TRUE),
Result = sample(c("K", "L", "M"), size = n, replace = TRUE))
df.breaks <- data.frame(Area = c("B", "C"), x = c(0.8, 0.3))
ggplot(df, aes(x = x, y = y)) +
geom_point(aes(colour = Result, shape = Type), size = 3) +
geom_smooth(aes(linetype = "Smooth"), colour = "green", se = FALSE) +
geom_hline(yintercept = 0.3) +
facet_wrap(~Area) +
geom_vline(data = df.breaks, aes(xintercept = x, linetype = "Break"), colour = "purple") +
scale_colour_manual(values = c("K" = "red", "L" = "orange", "M" = "blue")) +
scale_linetype_manual(name = "Lines", values = c("Break" = "dashed", "Smooth" = "solid"))
您会注意到,“线条”图例在每个项目中都有垂直线和水平线,在第一种情况下有几条虚线,在第二种情况下有几条实线。我正在尝试调整我的代码以生成一个图例,其中(1)一条水平绿线及其旁边的一个名为“Smooth”的键,以及(2)一条垂直的紫色虚线,其旁边有一个名为“Break”的键。我希望得到一些帮助,因为无论我尝试什么(包括linetype
内/外aes()
等等,或者使用scale_linetype_identity()
,甚至是override.aes
选项中guides
)我找不到合适的组合!
我搜索了类似的例子,尽管我发现其他帖子上有叠加的垂直线colour
, fill
, or shape
等等,我找不到一个上面有垂直线的linetype
像我这样的传奇。任何帮助将不胜感激!谢谢!