2011-10-12 78 views
10

我試圖在同一個圖中繪製兩個箱形圖,每個圖都在同一類別內。 我可以單獨生成箱形圖,但當我嘗試將它們放到同一圖表上時,我很難定位。在R中並排繪製幾組箱形圖塊

這是我到目前爲止有:

a<-matrix(nrow=100,ncol=3,data=runif(300,max=2)) 
b<-matrix(nrow=100,ncol=3,data=runif(300,max=1)) 
colnames(a)<-c("case 1","case 2","case 3") 
colnames(b)<-c("case 1","case 2","case 3") 
boxplot(cbind(a,b)) 

該地塊的結果6個箱線圖,對第1個3,然後3對於b。

有沒有一個技巧/簡單的選項,我錯過了,這會給我 首先爲a和b值,然後是第二個值,最後是第三個值的集合,所有這些都以這種方式繪製,只有三個ticks x軸,每組一個?

不勝感激任何指針,

伊恩

回答

8
boxplot(a, at = 0:2*3 + 1, xlim = c(0, 9), ylim = range(a, b), xaxt = "n") 
boxplot(b, at = 0:2*3 + 2, xaxt = "n", add = TRUE) 
axis(1, at = 0:2*3 + 1.5, labels = colnames(a), tick = TRUE) 

注意ylim = range(a, b)參數。繪圖比例由第一個命令決定,但如果b包含的值超出a的範圍(在本例中不是,但嘗試交換a和b),它們將不在圖中。這就是爲什麼一般來說你應該在這裏指定ylim。

您還可以在axis()命令中設置tick = FALSE,我認爲它更好。 如果您不喜歡組之間的空間,請使用0:2*2而不是0:2*3,然後適當更改xlim。

+0

太棒了!太感謝了 – Iain