Ci sono una miriade di possibilità.
Un'opzione che ho visto usata che evita la confusione con i grafici a scatole (supponendo che tu abbia mediane o dati originali disponibili) è quella di tracciare un diagramma a scatole e aggiungere un simbolo che segna la media (si spera con una legenda per renderlo esplicito). Questa versione del diagramma a scatole che aggiunge un marcatore per la media è menzionata, ad esempio in Frigge et al (1989) [1]:
La trama di sinistra mostra un simbolo + come marcatore medio e la trama di destra usa un triangolo sul bordo, adattando il marcatore medio dal diagramma trave e fulcro di Doane & Tracy [2].
Vedi anche questo post SO e questo
Se non hai (o davvero non vuoi mostrare) la mediana sarà necessaria una nuova trama e sarebbe bene che sia visivamente distinto da un diagramma a scatole.
Forse qualcosa del genere:
... che traccia il minimo, il massimo, la media e la media sd per ogni campione usando simboli diversi e quindi disegna un rettangolo, o forse meglio, qualcosa del genere:±
... che traccia il minimo, il massimo, la media e la media sd per ogni campione usando simboli diversi e quindi traccia una linea (in effetti attualmente è un rettangolo come prima, ma disegnato stretto; dovrebbe essere cambiato in un linea)±
Se i tuoi numeri sono su scale molto diverse, ma sono tutti positivi, potresti considerare di lavorare con i log o potresti fare piccoli multipli con scale diverse (ma chiaramente contrassegnate)
Codice (attualmente non particolarmente "carino", ma al momento si tratta solo di esplorare idee, non è un tutorial per scrivere un buon codice 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., DC Hoaglin e B. Iglewicz (1989),
"Alcune implementazioni della trama della scatola".
Statistico americano , 43 (febbraio): 50-54.
[2] Doane DP e RL Tracy (2000),
"Utilizzo dei display Beam e Fulcrum per esplorare i dati"
American Statistician , 54 (4): 289–290, novembre
R
comandi, questa domanda è fuori tema qui. Ma sembra che tu ti stia chiedendo principalmente come sarebbe una buona trama e secondariamente su come crearla. In tal caso, ti suggerisco di eliminare "con R" dal tuo titolo e magari dichiarando, nel corpo, che hai aR
disposizione.