Нарисуйте bloxplots в R с учетом 25,50,75 процентилей и минимальных и максимальных значений
Возможный дубликат:
geom_boxplot с предварительно вычисленными значениями
У меня есть таблица, в которой каждая строка представляет собой отдельный образец, а каждый столбец - это имя, минимум, максимум, среднее, 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 ответа
Этот пост показывает, как вы можете сделать это с 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
Это дубликат, однако для потомков, и так как я уже начал писать...
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')