如何生成boxplot

时间:2011-08-22 12:59:58

标签: r

我有一个数据,从那里,我想生成boxplot。我的文件保存在“1.txt”文件中,看起来像这样

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中生成boxplot?

3 个答案:

答案 0 :(得分: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 :(得分:0)

也许您想先重塑数据:

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

答案 2 :(得分:-1)

阅读这篇文章后,我发现我的解决方案是将表格粘贴在data.frame()中。 使用上面的例子:

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