如何更改 ggplot 中的图例标签?

JLD*_*475 2 r ggplot2

我正在尝试更改Control0%Shadeggplot 图例。关于如何做到这一点而不与所有其他绘图设置不一致的任何建议?

预测情节

pred_plot <- ggplot(pred, aes(x, predicted, color=group, fill=group)) +
  geom_line() + geom_ribbon(aes(ymin = conf.low, ymax = conf.high), alpha = 0.1, colour=NA) +
  labs(x = 'Ambient Temp (C)', y = "Predicted Deer Use") +
  scale_x_continuous(breaks = round(seq(min(pred$x), max(pred$x), by = 5),1), labels=scales::label_number(accuracy = 1)) + 
  theme(axis.text=element_text(size=30, colour='black'),axis.title=element_text(size=30,face="bold")) +
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
        panel.background = element_blank(), axis.line = element_line(colour = "black"))+
  theme(legend.position="bottom", legend.box = "horizontal", legend.title = element_blank(), legend.key = element_blank(),
        legend.key.size = unit(4, 'cm'),legend.text = element_text(size=20)) + 
  transition_reveal(x) 
Run Code Online (Sandbox Code Playgroud)

che*_*123 6

您可以通过提供命名向量来通过函数labels=中的参数来实现这一点scale_color_*()。这是一个例子:

library(ggplot2)

set.seed(1235)
df <- data.frame(x=1:10, y=1:10, z = sample(c("Control", "B", "C"), size=10, replace=TRUE))

df$z <- factor(df$z, levels=c("Control", "B", "C"))  # setting level order

p <- ggplot(df, aes(x,y, color=z)) + geom_point(size=4)
p
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

要完全“在绘图代码中”更改“Control”的名称,我将使用scale_color_hue(labels=...). 请注意,默认情况下,ggplot2使用均匀间隔的色调缩放,因此这可以保持颜色本身相同。使用命名向量不是必需的,但最好确保您不会混淆名称/标签:

p + scale_color_hue(labels=c("Control" = "A", "B"="B", "C"="C"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • @JLD475那是因为你既有填充比例又有颜色比例。如果您想要相同的图例,请使用“scale_fill_hue”和“scale_color_hue”。您可能需要给它们相同的“name =”来合并它们 (2认同)