首页 > 解决方案 > 将图例标签更改为我想要的

问题描述

我正在尝试将情节图例中的标签更改为“一岁”和“成人”而不是“1”和“-1”。我首先运行这段代码来制作这个情节:

cols <- c("dodgerblue", "goldenrod") #designate colors

density_age_plot <- plot_model(density_model, type = "pred", 
                               terms = c("density_std", "ageclass_std"), 
                               color = cols, show.data = TRUE, jitter = 0.1,
                               axis.title = c("Density", "Proportional Mass Gain"), 
                               title = "Density*Age Class", alpha = 0) + 
  theme_classic() + 
  labs(color = "Age Class") + 
  theme(legend.position = c(0.8, 0.9)) + 
  theme(plot.title = element_text(hjust = 0.5)) 

这是它制作的图表

这是它制作的图表

然后我尝试density_age_plot + scale_color_discrete(labels = c("yearling", "adult"))但我得到了这个错误: “颜色”的比例已经存在。为“颜色”添加另一个比例,它将取代现有的比例。错误:提供给离散刻度的连续值

谁能帮我?ggplot2 不是我的事!谢谢!

标签: rggplot2legend

解决方案


OP,您可能可以使用scale_color_manual(). 这是一个代表,因为我没有你的数据。您将向量传递给values=参数以控制颜色,并将向量传递给labels=参数以控制标签。如果您提供命名向量,您可以明确指定哪个value(颜色)或label与每个因素相关联。否则,它将默认为因子级别或按字母数字顺序排列您的项目。

df <- data.frame(x=1:10, y=1:10, category = rep(c(1,-1), 5))

ggplot(df, aes(x,y,color=factor(category))) + geom_point() +
  scale_color_manual(
    values=c('1'='blue','-1'='red'),
    labels=c('1'="positive",'-1'="negative"))

在此处输入图像描述

请注意,如果您将数字作为因子级别,则必须使用反引号语法来引用它们(因为名称不能是数字),但如果它是一个因子,引号可以正常工作。

没有scale_color_manual(),它看起来像这样:

在此处输入图像描述


推荐阅读