我有一张表,其中每行是不同的样本,每列分别是名称,最小值,最大值,平均值,第25百分位数,第50百分位数,第75百分位数。这是一个样本。
sample1 1 38 10 8 10 13
sample2 1 39 10 9 11 14
sample3 2 36 11 10 10 13
我想知道如何使用这种格式的数据来绘制箱图,因为这是实际绘制的数据。上面的格式是一个制表符分隔表。感谢
答案 0 :(得分:8)
This post显示了如何使用bxp
boxplot
使用的函数执行此操作,但您需要按正确的顺序放置数据,第一行是最小的,最后一行是最大值。
首先,读入数据
dat <- read.table(text="sample1 1 38 10 8 10 13
sample2 1 39 10 9 11 14
sample3 2 36 11 10 10 13", row.names=1, header=FALSE)
然后,按顺序和t
ranspose
dat2 <- t(dat[, c(1, 4, 5, 6, 2)]) #Min, 25pct, 50pct, 75pct, Max
和情节
bxp(list(stats=dat2, n=rep(10, ncol(dat2)))) #n is the number of observations in each group
答案 1 :(得分:1)
这是一个副本,但是对于后人而言,因为我已经开始写...
dat <- data.frame(name=paste0('sample',1:3), min=c(1,1,2), max=c(38,39,36), mean=c(10,10,11), q25=c(8,9,10), q50=c(10,11,10), q75=c(13,14,13))
ggplot(dat, aes(x=name, ymin=min, ymax=max, lower=q25, middle=q50, upper=q75))+geom_boxplot(stat='identity')