【问题标题】:Can I customize individuals items in a ggplot legend?我可以自定义 ggplot 图例中的个人项目吗?
【发布时间】:2020-05-31 18:45:50
【问题描述】:

是否可以制作不同字体的指南,关于一个因素?我正在尝试绘制我的多元数据,除了颜色代码之外,我还想让一些指南加粗。 这是一个可重现的示例

  library("ggpubr")
  library("reshape2")

iris.melt <- melt(iris)

ggboxplot(data = iris.melt, x = "variable", y= "value", add = "jitter",
          add.params = list(color = "Species"), legend = "bottom") +
theme(legend.text = element_text(face = "italic")) +
guides(col = guide_legend(override.aes = list(size=2), label.position = "bottom")) 

哪个产生

我试着只突出一个物种

ggboxplot(data = iris.melt, x = "variable", y= "value", add = "jitter",
          add.params = list(color = "Species"), legend = "bottom") +
theme(legend.text = element_text(face = c("plain","italic","plain")) +
guides(col = guide_legend(override.aes = list(size=2), label.position = "bottom"))

但“element_text() 的矢量化输入不受官方支持。”

有没有办法自定义图例中的个人项目?

【问题讨论】:

    标签: r ggplot2 customization legend


    【解决方案1】:

    我认为没有办法单独设置主题组件,但是有一个解决方法,就是使用表达式作为标签。这样您就可以将任何单个标签设为粗体:

    library("ggpubr")
    library("reshape2")
    
    iris.melt <- melt(iris)
    
    one_bold_label <- expression("Setosa", bold(paste("Versicolor")), "Virginica")
    
    ggboxplot(data = iris.melt, x = "variable", y= "value", add = "jitter",
              add.params = list(color = "Species"), legend = "bottom") +
      theme(legend.text = element_text(face = "italic")) +
      scale_colour_manual(labels = one_bold_label, values = c("#F8766D", "#00BA38", "#619CFF")) +
      scale_fill_manual(labels = one_bold_label, values = c("white", "white", "white"))
    

    reprex package (v0.3.0) 于 2020 年 5 月 31 日创建

    【讨论】:

    • 谢谢艾伦!它的效果很好,因为我有所有我想要的粗体标签。但是,当我将其转换为我的代码(24 种颜色编码的物种)时,我得到了双重图例:一个带有粗体标签的彩色图例,一个带有纯文本的黑色图例。我已经删除了“guides()”行,但没有运气。我要么得到初始图例,要么得到 2 个图例,要么没有图例。
    • @SaraEsteves 您必须为 scale_colour_manual 和 scale_fill_manual 提供相同的标签,以便将它们合并。这就是我定义 one_bold_label 并将其应用于两个尺度的原因。
    • @SaraEsteves 或者只是添加+ guides(fill = "none"),这样更容易
    猜你喜欢
    • 2021-03-15
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2021-08-14
    相关资源
    最近更新 更多