给出25,50,75百分位数和最小值和最大值的R中的bloxplots

时间:2012-06-20 23:06:52

标签: r boxplot

  

可能重复:
  geom_boxplot with precomputed values

我有一张表,其中每行是不同的样本,每列分别是名称,最小值,最大值,平均值,第25百分位数,第50百分位数,第75百分位数。这是一个样本。

sample1   1   38   10   8    10   13
sample2   1   39   10   9    11   14
sample3   2   36   11   10   10   13

我想知道如何使用这种格式的数据来绘制箱图,因为这是实际绘制的数据。上面的格式是一个制表符分隔表。感谢

2 个答案:

答案 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')