2

我正在尝试将 x 轴标签“A0”和“A1”替换为一个“A”,该“A”可以放置在“A0”和“A1”的中间。如果有一种类似于以下问题的方法会更好: grouping of axis labels ggplot2

我的意思是只为每个组重新绘制 x 轴,并在组之间留一个空白。

这是我正在处理的代码:

y = 1*round(runif(20)*10,1)
x1 = c("A","B")
x2 = c(0,1)
x = expand.grid(x1,x2)
xy = cbind(x,y)
xy$z = paste(xy$Var1,xy$Var2,sep="")

p <- ggplot(xy, aes(x=factor(z), y=y,fill=factor(Var2)))
p + geom_boxplot() + geom_jitter(position=position_jitter(width=.2)) + theme_bw() + xlab("X") + ylab("Y") + scale_fill_discrete(name="Var2",breaks=c(0, 1),labels=c("T", "C"))
4

1 回答 1

2

尝试这个。不需要变量z,只需使用position="dodge"

p <- ggplot(xy, aes(x=factor(Var1), y=y,fill=factor(Var2)))
p + geom_boxplot(position="dodge") + geom_jitter(position=position_jitter(width=.2)) + theme_bw() + xlab("X") + ylab("Y") + scale_fill_discrete(name="Var2",breaks=c(0, 1),labels=c("T", "C"))
于 2013-05-02T13:52:27.973 回答