Hay un sinfín de posibilidades.
Una opción que he visto utilizar y que evita la confusión con los boxplots (suponiendo que se disponga de las medianas o de los datos originales) es trazar un boxplot y añadir un símbolo que marque la media (a ser posible con una leyenda que lo haga explícito). Esta versión del boxplot que añade un marcador para la media se menciona, por ejemplo, en Frigge et al (1989) [1] :
El gráfico de la izquierda muestra un símbolo + como marcador de la media y el gráfico de la derecha utiliza un triángulo en el borde, adaptando el marcador de la media del gráfico del haz y el fulcro de Doane y Tracy [2].
Ver también este post de SO y este
Si no tiene (o realmente no quiere mostrar) la mediana será necesario un nuevo gráfico y entonces sería bueno que fuera visualmente distinto de un boxplot.
Quizás algo así:
... que traza el mínimo, el máximo, la media y el promedio $\pm$ sd para cada muestra utilizando diferentes símbolos y luego dibuja un rectángulo, o quizás mejor, algo así:
... que traza el mínimo, el máximo, la media y el promedio $\pm$ sd para cada muestra utilizando diferentes símbolos y luego dibuja una línea (de hecho en la actualidad esto es en realidad un rectángulo como antes, pero dibujado estrecho; debería cambiarse para dibujar una línea)
Si sus números están en escalas muy diferentes, pero todos son positivos, podría considerar trabajar con troncos, o podría hacer pequeños múltiplos con escalas diferentes (pero claramente marcadas)
Código (actualmente no es un código particularmente "bonito", pero por el momento esto es sólo una exploración de ideas, no es un tutorial sobre cómo escribir un buen código R):
fivenum.ms=function(x) {r=range(x);m=mean(x);s=sd(x);c(r[1],m-s,m,m+s,r[2])}
eps=.015
plot(factor(c(1,2)),range(c(A,B)),type="n",border=0)
points((rep(c(1,2),each=5)),c(fivenum.ms(A),fivenum.ms(B)),col=rep(c(2,4),each=5),pch=rep(c(1,16,9,16,1),2),ylim=c(range(A,B)),cex=1.2,lwd=2,xlim=c(0.5,2.5),ylab="",xlab="")
rect(1-1.2*eps,fivenum.ms(A)[2],1+1.4*eps,fivenum.ms(A)[4],lwd=2,col=2,den=0)
rect(2-1.2*eps,fivenum.ms(B)[2],2+1.4*eps,fivenum.ms(B)[4],lwd=2,col=4,den=0)
plot(factor(c(1,2)),range(c(A,B)),type="n",border=0)
points((rep(c(1,2),each=5)),c(fivenum.ms(A),fivenum.ms(B)),col=rep(c(2,4),each=5),pch=rep(c(1,16,9,16,1),2),ylim=c(range(A,B)),cex=1.2,lwd=2,xlim=c(0.5,2.5),ylab="",xlab="")
rect(1-eps/9,fivenum.ms(A)[2],1+eps/3,fivenum.ms(A)[4],lwd=2,col=2,den=0)
rect(2-eps/9,fivenum.ms(B)[2],2+eps/3,fivenum.ms(B)[4],lwd=2,col=4,den=0)
[1] Frigge, M., D. C. Hoaglin y B. Iglewicz (1989),
"Algunas implementaciones del diagrama de caja".
Estadístico americano , 43 (febrero): 50-54.
[2] Doane D.P. y R.L. Tracy (2000),
"Uso de pantallas Beam y Fulcrum para explorar datos"
Estadístico americano , 54 (4):289-290, noviembre
1 votos
Bienvenido a la lista. Si pregunta por
R
comandos entonces esta pregunta está fuera de tema aquí. Pero parece que estás preguntando principalmente sobre cómo sería una buena trama y en segundo lugar sobre cómo crearla. Si es así, sugiero eliminar "con R" de su título y tal vez indicando, en el cuerpo, que usted tieneR
disponible.