在ggplot2中,如何更改图例标签但保持颜色不变?

Lik*_*han 4 r ggplot2

给出以下 ggplot 图,

p <- ggplot(mtcars, aes(mpg, wt)) + geom_point(aes(colour = factor(cyl)))
Run Code Online (Sandbox Code Playgroud)

如果我想更改图例的标签,我可以执行以下操作:

p + scale_color_manual(labels = c("X", "Y", "Z"), values = 1:3)
Run Code Online (Sandbox Code Playgroud)

但是,如果我只想更改标签而保持颜色不变,该怎么办?我尝试使用以下公式:

p + scale_color_manual(labels = c("X", "Y", "Z"))
Run Code Online (Sandbox Code Playgroud)

它给出了一个错误,说:Error in f(...) : argument "values" is missing, with no default

当然,我可以通过设置因子来实现这一点cyl

mtcars$cyl = as.factor(mtcars$cyl, labels = c("X", "Y", "Z"))
ggplot(mtcars, aes(mpg, wt)) + geom_point(aes(colour = factor(cyl)))
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否可以scale_color_manual通过其他方式实现这一目标。

MrF*_*ick 5

怎么样scale_color_discrete

p + scale_color_discrete(labels=letters[1:3])
Run Code Online (Sandbox Code Playgroud)