para hacer graficos diagrama comparativo como codigo cajas caja bigotes alambres r ggplot2 boxplot

hacer - Ponga puntas de bigotes en el cuadro de caja



graficos de cajas y bigotes en r (3)

Me gustaría poner líneas perpendiculares en los extremos de los bigotes como la función de boxplot da automáticamente.


Como se sugirió pero no implementado por @Roland, puede usar stat_boxplot para implementar esto. El truco es llamar a _boxplot dos veces y establecer el geom en la errorbar de errorbar para una de las llamadas.

Tenga en cuenta que a medida que R utiliza un enfoque de pluma y papel, es aconsejable implementar las barras de error primero, dibuje el cuadro de caja tradicional sobre la parte superior.

Usando los datos ficticios de @Roland df

ggplot(df, aes(x=cond, y = value)) + stat_boxplot(geom =''errorbar'') + geom_boxplot() # shorthand for stat_boxplot(geom=''boxplot'')

La ayuda para stat_boxplot ( ?stat_boxplot ) detalla los diversos valores calculados y guardados en un data.frame


Para cambiar el tamaño de las líneas de bigotes, podemos usar el argumento width = 0.5 dentro de la función: stat_boxplot

set.seed(42) df <- data.frame(cond = factor(rep(c("A", "B"), each = 500)), value = c(rnorm(500, mean = 1, sd = 0.2), rnorm(500, mean = 1.5, sd = 0.1))) library(ggplot2) ggplot(df, aes(x = cond, y = value)) + stat_boxplot(geom = "errorbar", width = 0.5) + geom_boxplot()


Podría ser posible usar stat_boxplot para calcular los extremos del bigote, pero no soy lo suficientemente un asistente ggplot2 , entonces uso la función base para eso.

set.seed(42) df <- data.frame(cond = factor( rep(c("A","B"), each=500) ), value = c(rnorm(500,mean=1,sd=0.2),rnorm(500, mean=1.5,sd=0.1))) whisk <- function(df,cond_col=1,val_col=2) { require(reshape2) condname <- names(df)[cond_col] names(df)[cond_col] <- "cond" names(df)[val_col] <- "value" b <- boxplot(value~cond,data=df,plot=FALSE) df2 <- cbind(as.data.frame(b$stats),c("min","lq","m","uq","max")) names(df2) <- c(levels(df$cond),"pos") df2 <- melt(df2,id="pos",variable.name="cond") df2 <- dcast(df2,cond~pos) names(df2)[1] <- condname df2 } library(ggplot2) plot1 <- ggplot(df, aes(x=cond)) plot1 <- plot1 + geom_errorbar(aes(ymin=min,ymax=max),data=whisk(df),width = 0.5) plot1 <- plot1 + geom_boxplot(aes(y=value)) plot1