我在R中有幾個箱子和鬍鬚圖。在這兩個座標系中,x軸對應於一個分類變量,而分組顏色對應於另一個。R ggplot - 座標變換(平方根)與箱形圖
如果我繪製兩個繪圖與未轉換的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)
}
很難在沒有數據的情況下幫助您,或者至少在您顯示問題的地方顯示圖片。 – agstudy
對不起。添加數據 –
用'scale_y_sqrt()'替換'scale_y_continuous()'並丟失'coord_trans()'行。這似乎適用於我(R-2.15.3,Win7 64位,ggplot2-0.9.3.1)。 – Dennis