繁体   English   中英

使用R中的facet_grid的ggplot2 boxplot中的表达式分别更改x标签

[英]Individually change x labels using expressions in ggplot2 boxplot with facet_grid in R

我想在使用facet_grid时分别更改ggplot2箱线图的x标签。 我做了一个简单的例子:

library(ggplot2)

data1 <- InsectSprays
data1$group <- "group 1"
data2 <- InsectSprays
data2$group <- "group 2"

plotData <- rbind(data1, data2)

ggplot(plotData, aes(x=spray, y=count, fill=spray))+
guides(fill=FALSE) +
facet_grid(. ~ group) +
geom_boxplot()

在此处输入图片说明

我想更改x轴上的标签(A,B,C,...),但要分别更改两个组的标签。 更改标签的一种方法是使用:

scale_x_discrete(labels=c("label 1", "label 2", ...))

但这会将两组中的标签更改为相同的值。 最后,我还需要能够为标签使用表达式。 有什么方法可以实现我想要的吗?

编辑:

有一个非常简单的方法可以解决我的问题(感谢@Axeman)。 通过使用:

scale_x_discrete(labels=c('A' = expression(beta)))

我可以更改标签。 在我的示例中,这将更改两个组,但是对我而言,可以将标签预先重命名为单个标签,然后使用此技巧为标签使用表达式。

plotData$x <- interaction(plotData$spray, plotData$group)
plotData$x <- factor(plotData$x, labels = paste('labels', 1:12))

ggplot(plotData, aes(x=x, y=count, fill=spray))+
    geom_boxplot(show.legend = FALSE) +
    facet_grid(. ~ group, scales = 'free')

在此处输入图片说明

我本以为以下内容会起作用,但事实并非如此!

ggplot(plotData, aes(x=interaction(spray, group), y=count, fill=spray))+
  geom_boxplot(show.legend = FALSE) +
  facet_grid(. ~ group, scales = 'free') +
  scale_x_discrete(labels = paste('labels', 1:12))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM