我在 R 中有几个箱须图。在两者中,x 轴对应于一个分类变量,而分组颜色对应于另一个。
如果我用未转换的 y 轴绘制两个图,它们都很好。但是,如果我尝试对 y 轴进行平方根变换(使用:coord_trans(y = "sqrt")),其中一个图形仍然可以,而另一个则丢弃与大多数框中的中位数相对应的线(除了那些其中只有两组,因此方框略宽,请参见第一个图上的“数字”1 和 2)。此外,对于未正确绘制的图表,如果我减少 x 轴上的类别数量(因此再次使框变宽),中线会再次出现。
这是 coord_trans 的错误(如果是,我该如何解决)还是我的代码有问题?
非常感谢您的任何建议。
library(car)
library(gplots)
library(plyr)
library(ggplot2)
library(gridExtra)
library(gdata)
Category=factor(c(rep(1, times =3240), rep(2, times =2160)),
labels=c("A","B"), levels=c(1,2))
ID=factor(rep(seq(from = 1, to = 45),each = 120))
Months=factor(rep(seq(from = 1, to = 3), each = 40, times = 45),
labels=c("Jan","Feb","Mar"),levels=c(1:3))
Obs=rnorm(5400, mean=25, sd=15)
Data=data.frame(Category,ID,Months,Obs)
Data=subset(Data, (Data$Category=="B") | !(Data$ID%in%c(1,2)) |
(Data$Months%in%c("Jan","Feb")))
for (j in 1:2)
{
sel=which(Data$Category==unique(levels(Data$Category))[j])
Observ=Data$Obs[sel]
Month=Data$Months[sel]
Number=droplevels(Data$ID[sel])
Number=droplevels(Number)
Data_used=data.frame(Number,Month,Observ)
plot1 = ggplot(Data_used, aes(Number, Observ)) +
geom_boxplot(aes(fill=Month, drop=FALSE), na.rm=TRUE) +
scale_y_continuous(breaks = c(0,20,40,60,80,100), limits=c(0,115)) +
coord_trans(y = "sqrt")
plot(plot1)
}