如何 select 图例项但仍保留 scale_color_manual() 指定的比例

How to select legend items but still preserve the scale specified by scale_color_manual()

问题:

我正在 ggplot 中创建二维绘图。根据有序因素,该图具有多条曲线。我想要一个只包含第一个和最后一个因素的图例,同时指定每个因素要使用的颜色。


我尝试过的:

colors 为包含每个因素的颜色规范的向量。使用 scale_color_manual(values=colors) 时,ggplot 会尝试在图例中列出所有项目。

为了 select 仅显示图例中的第一个和最后一个因子,我在 Whosebug 上推荐了几个答案:使用 breaks 参数指定因子值。这行得通,但现在只有与第一个和最后一个因素相关的曲线具有正确的颜色,其他是灰色的(即 NA 颜色值)。

任何包含两个单独的 scale_color_manual 的尝试也失败了。

你走在正确的轨道上。只需设置 breaks= 来定义图例中您想要的级别,并设置 values= 来定义 factor-color 关系。

data(iris)

library(ggplot2)

colors <- c("setosa" = "orange", "versicolor" = "red", "virginica" = "purple")
  
ggplot(data = iris) + 
  geom_line(aes(x = Petal.Width, y = Petal.Length, color = Species)) +
  scale_color_manual(breaks = c("setosa", "virginica"), values = colors)