我有一些代码以前可以工作,但现在不再工作了。之前,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”。但是,这是我的输出:
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'))
关于r - ggplot2 忽略scale_color_manual() 中的颜色顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75822211/