【问题标题】:Add legend to boxplot rstudio将图例添加到 boxplot rstudio
【发布时间】:2022-01-06 18:19:23
【问题描述】:

我使用以下代码创建箱线图:

plot <- ggplot(WL, aes(y = wavelength, x = factor(category, level = c("A", "B")))) +
  theme_bw() +
  geom_boxplot(outlier.colour = "gray30", outlier.shape = 8, outlier.size = 2, lwd=1, fill = c("#C6DBEF", "#FEE391")) +
  ylab(expression(lambda[(km)])) +
  theme(plot.margin = unit(c(2,2,2,2), "cm"),
        axis.title.x = element_blank(),
        axis.title.y=element_text(size=20),
        plot.title = element_text(size = 22, vjust = 2)) 

如何添加图例?我想把它放在情节中(右上角)。它应该显示两种颜色和描述。

我正在尝试使用对我不起作用的 legends()。

【问题讨论】:

  • 使用类似于ggplot(WL, aes(y = wavelength, x = category, fill = category)) + geom_boxplot() + scale_fill_manual(values = c("#C6DBEF", "#FEE391")) 的东西。您应该将填充映射到 aes,而不是在 geom 中硬编码值。
  • 感谢您的回答!

标签: r ggplot2 boxplot


【解决方案1】:

问题在于您指定 fill 的位置 - 以下代码将为您提供一个图例,更改最后一行中的 position 将允许您将其更改为您想要的位置:

# sample data
WL <- data.frame(wavelength = rnorm(100, 0,1),
                 category = sample(LETTERS[1:2], 100, replace = TRUE))

# plot
ggplot(WL, aes(y = wavelength, x = factor(category, level = c("A", "B")), fill = category)) +
  theme_bw() +
  geom_boxplot(outlier.colour = "gray30", outlier.shape = 8, outlier.size = 2, lwd = 1) +
  ylab(expression(lambda[(km)])) +
  theme(plot.margin = unit(c(2,2,2,2), "cm"),
        axis.title.x = element_blank(),
        axis.title.y=element_text(size=20),
        plot.title = element_text(size = 22, vjust = 2)) +
  scale_fill_manual(values = c("#C6DBEF", "#FEE391")) + 
  theme(legend.position = "bottom")

【讨论】:

  • 谢谢,这很有帮助!
猜你喜欢
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
  • 2022-01-23
  • 2019-08-21
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 2022-07-08
相关资源
最近更新 更多