R 的问题:使用 ggplot2 更改多个箱线图的标题

Posted

技术标签:

【中文标题】R 的问题:使用 ggplot2 更改多个箱线图的标题【英文标题】:Troubles with R: Changing headings of multiple boxplots using ggplot2 【发布时间】:2018-04-09 09:45:30 【问题描述】:

我遇到了一个问题,我似乎无法解决,在互联网上搜索了 24 小时后,我决定在这里提问。

我有一个用 ggplot2 制作的 4 箱线图。每个箱线图都以数据变量命名。但是为了让读者更容易理解,我想更改每个单个箱线图的标题(不更改数据集中的名称)。这可能吗?我试过使用“ggtitle”、“rename”、“main=”和其他几个建议,我在互联网上找到了。

这是我完成的编码:

d11 <- droplevels(subset(d, time=="Baseline" | time=="Pre-ECT" | time=="1st Period Post-ECT" | time=="2nd Period Post-ECT"))

ggplot(melt(d11, id.vars= c("subj", "time", "time.num", "intervention","order", "age", "sex", "diagn", "diagn2"), measure.vars = c("HR", "BPsys", "BPdia", "CO")), aes(x=time, y = value, fill = intervention)) + 
  geom_boxplot()  +
  theme(axis.text.x = element_text(angle=90, hjust=1, vjust=0.5)) + 
  facet_wrap(~variable, scales= "free")

我希望箱线图中的标题改为“心率”、“收缩压”、“舒张压”、“心输出量”。

对功能有什么建议,可能有用吗?

【问题讨论】:

查看 facet_wrap 的 labeller 参数 嗨,理查德。感谢您的评论。好像我使用了 .default 参数,我可以让所有标签消失,但我在用自己的名字替换它们时遇到了麻烦。 【参考方案1】:

您需要在facet_wrap 中使用labeller 参数。使用它的最简单方法是使用 as_labeller 和命名向量。

ggplot(iris, aes(x = Petal.Length, y = Petal.Width)) +
  geom_point() +
  facet_wrap(~Species, 
    labeller = as_labeller(c("setosa" = "I. setosa", "versicolor" = "I. versicolor",  "virginica" = "I. virginica")))

【讨论】:

理查德·特尔福德,你是个巫师。问题解决了!

以上是关于R 的问题:使用 ggplot2 更改多个箱线图的标题的主要内容,如果未能解决你的问题,请参考以下文章

使用ggplot2时如何更改箱线图的顺序?

ggplot2 不会将图例添加到具有多个层的箱线图

用ggplot2画箱线图叠加图层后变成一个很奇怪的样子,求救求救?

使用 ggplot2 将平均值添加到 R 中的分组箱形图

并排的多个箱线图

用一条线连接箱线图(ggplot2)