2011-08-22 73 views
2

我有一個數據,並從中,我想生成boxplot。我的文件保存在「的1.txt」的文件,好像這個如何生成boxplot

R S1G1 S1G2 S2G1 S2G2 
1 0.98 0.98 0.96 0.89 
2 0.89 0.89 0.98 0.88 
3 0.88 0.99 0.89 0.87 

我使用這個代碼:

x<-read.table("1.txt", header=T) 

boxplot(R~S1G1, data=x, main = "Output result",las = 2, pch=16, cex = 1, 
     col = "lightblue", xlab = "R",ylab = "SNP values",ylim =c(-0.4,1.0), 
     border ="blue", boxwex = 0.3) 

誰能告訴我如何生成中的R箱圖?

回答

1

也許你想先重塑你的數據:

x1 <- reshape(x, idvar="R", varying=list(2:5), direction="long") 

而且比繪製它:

boxplot(S1G1 ~ R, data=x1, main = "Output result",las = 2, pch=16, cex = 1, 
    col = "lightblue", xlab = "R",ylab = "SNP values",ylim =c(-0.4,1.2), 
    border ="blue", boxwex = 0.3) 

boxplot

3

您的意見是有點困難破譯,但我猜測,也許你想爲每列S1G1等箱線圖。在這種情況下,我會融化你的數據:

xx <- read.table(textConnection("R S1G1 S1G2 S2G1 S2G2 
1 0.98 0.98 0.96 0.89 
2 0.89 0.89 0.98 0.88 
3 0.88 0.99 0.89 0.87"),header = TRUE, sep ="") 

xx1 <- melt(xx, id.vars = "R") 

,然後你可以使用任何流行的圖形成語並排側箱線圖:

ggplot(xx1, aes(x = variable, y = value)) + 
    geom_boxplot() 

enter image description here

或者你可以使用基礎圖形或lattice(略圖):

boxplot(value~variable, data = xx1) 

bwplot(value~variable,data = xx1) 
-1

看完這篇文章後,我發現我的解決方案是堅持data.frame()中的表。使用 上面的例子:

Xtab <- data.frame(x) 
boxplot(Xtab$Freq ~ Xtab$Var1) 
-1

如果傳遞的數據幀到boxplot(),它將自動創建各列的箱線圖。因此,它可以很簡單地使用

boxplot(x[,-1]) 

注意,-1是除去第一列,這是不是在想情節來完成。

enter image description here

的數據是

x <- read.table(textConnection("R S1G1 S1G2 S2G1 S2G2 
1 0.98 0.98 0.96 0.89 
2 0.89 0.89 0.98 0.88 
3 0.88 0.99 0.89 0.87"),header = TRUE, sep ="") 
+0

我很感謝誰下投票,如果他們可以發表評論來解釋爲什麼,或者我應該在這個崗位提高。這在我看來是這裏提供的最簡單的解決方案,並且完美地工作! – dww