r - ggplot2 忽略scale_color_manual() 中的颜色顺序

标签 r ggplot2

我有一些代码以前可以工作,但现在不再工作了。之前,scale_xy_manual() 函数中的决定了图例项的顺序。但现在不再是这样了。

这是一个例子:

ggplot() +
  geom_line(aes(x = 1:10, y = 1:10, col = "b")) +
  geom_line(aes(x = 1:10, y = (1:10)*0.5, col = "a")) +
  scale_color_manual(values = c("b" = "blue", "a" = "red"), labels = c("b", "a"))

我希望斜率较低的线为红色,另一条线为蓝色。标签顺序为“b”,然后是“a”。但是,这是我的输出:

enter image description here

ggplot2 显然忽略了图例的values 字符串的顺序。线条具有正确的颜色,图例中标签的顺序正确,但图例与使用的颜色不匹配。我该如何解决这个问题?

最佳答案

labels 参数只是创建新标签,覆盖图例中的标签。默认情况下,它将遵循字母顺序“a”,“b”。因此,您所做的就是用“b”覆盖“a”,用“a”覆盖“b”。

如果要更改标签的顺序,可以使用 breaks 指定顺序。除非您想实际更改打印标签的文本,否则根本不需要标签

ggplot() +
  geom_line(aes(x = 1:10, y = 1:10, col = "b")) +
  geom_line(aes(x = 1:10, y = (1:10)*0.5, col = "a")) +
  scale_color_manual(values = c("b" = "blue", "a" = "red"), 
                     breaks = c('b', 'a'))

enter image description here

关于r - ggplot2 忽略scale_color_manual() 中的颜色顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75822211/

相关文章:

r - 制作字符串频率表

r - 在ggplot中以日期格式显示x轴的矩形

r - ggplot2 具有多个因素的连续条形图

r - 在 R 中的 ggplot2 geom_dotplot 中使用填充美学时的重叠点

r - 以给定的纵横比保存绘图

css - picketInput 更改占位符 R Shiny Widgets

r - 将字符串转换为数据框

r - 如何在 R 中创建边际效应表?

r - 在向量中的点内插值

r - 标题中单个单词的颜色与组的颜色相匹配