首页 > 解决方案 > 将 geom_segment 包含在单独组中的图例中

问题描述

如何使线 ( geom_segment) 出现在图例中,作为其自己组中的单独项目?图例应如下所示:

最小代码:

data_points <- tibble(x = c(rep(1:10, 2)), y = rnorm(20), group = c(rep("g1", 10), rep("g2", 10)))
data_line <- tibble(x = 1:10, y = 0.5)

ggplot(data_points, aes(x = x, y = y, color = group)) +
  geom_point() +
  geom_segment(aes(x = data_line$x[1], xend = data_line$x[10], y = data_line$y[1], yend = data_line$y[10]), color = "black") +
  scale_color_manual(name = "Groups", labels = c('g1', 'g2'), values = c('blue', 'red'))

提前致谢 : )

标签: rggplot2

解决方案


修改自 是否可以为 geom_point 和 geom_segment 添加图例?.

library(ggplot2)
library(tibble)
data_points <- tibble(x = c(rep(1:10, 2)), y = rnorm(20), group = c(rep("g1", 10), rep("g2", 10)))
data_line <- tibble(x = 1:10, y = 0.5)

ggplot(data_points, aes(x = x, y = y, color = group)) +
  geom_point() +
  geom_segment(
    aes(x = data_line$x[1], xend = data_line$x[10], 
        y = data_line$y[1], yend = data_line$y[10],
        linetype = "mean"), 
    color = "black") +
  scale_color_manual(name = "Groups", labels = c('g1', 'g2'), values = c('blue', 'red')) +
  scale_linetype_manual(name = "Info", values = c("mean" = 1))

在此处输入图像描述

更改图例的顺序

ggplot(data_points, aes(x = x, y = y, color = group)) +
  geom_point() +
  geom_segment(
    aes(x = data_line$x[1], xend = data_line$x[10], 
        y = data_line$y[1], yend = data_line$y[10],
        linetype = "mean"), 
    color = "black") +
  scale_color_manual(name = "Groups", labels = c('g1', 'g2'), values = c('blue', 'red')) +
  scale_linetype_manual(name = "Info", values = c("mean" = 1)) +
  guides(color = guide_legend(order = 2), linetype = guide_legend(order = 1))

推荐阅读