如何将图例添加到 ggplot2 中的多个 hlines?

How can I add legend to multiple hlines in ggplot2?


谁能帮我完成一些任务?
我必须将 3 geom_hline() 添加到绘图中。
其中之一是一条线,显示了森林中三分球的推荐间距,其他是可接受的间距变化上限和下限。
为此,我使用了 geom_hline(),但我很难以正确的方式显示图例。
另外,两条线型相同(虚线),为红色,一条为蓝色实线。
那么,如何给这三行添加图例呢?
请记住,我需要在图例中包含两个元素:作为限制的红色虚线的简要说明和作为建议间距的蓝色实线的简要说明。
非常感谢,伙计们!

要在 ggplot 中显示图例,您应该创建一个美学映射。最简单的方法是拥有一个单独的小数据框,其中包含您要在 hline 上显示的信息。

您没有提供任何示例数据,所以我在这里做了一些,以便这是一个完全可重现的示例:

library(ggplot2)

set.seed(69)
main_data <- data.frame(x = rnorm(200, 10), y = rnorm(200, 10))
hline_data <- data.frame(y = c(8, 10, 12), type = factor(c(2, 1, 2)), 
                         stringsAsFactors = FALSE)

ggplot(main_data, aes(x,y)) + 
  geom_point() + 
  geom_hline(data = hline_data, 
             aes(yintercept = y, linetype = type, colour = type)) +
  scale_colour_manual(values = c("blue", "red"), 
                      labels = c("Recommended Spacing", "Limits of spacing"),
                      name = "Key") +
  scale_linetype_manual(values = 1:2, 
                        labels = c("Recommended Spacing", "Limits of spacing"),
                        name = "Key")

reprex package (v0.3.0)

于 2020-05-19 创建