我有一个数据,从那里,我想生成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?
答案 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()
或者您可以使用基本图形或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)
答案 2 :(得分:-1)
阅读这篇文章后,我发现我的解决方案是将表格粘贴在data.frame()中。 使用上面的例子:
Xtab <- data.frame(x)
boxplot(Xtab$Freq ~ Xtab$Var1)