2012-12-20 12 views
8

Desidero (ottenuto il suggerimento di farlo) creare un boxplot con un aspetto diverso e aggiungere etichette ad esso. L'output previsto (non completo) sarà simile al seguente (con ogni etichetta ha etichette quilt) e la dimensione del campione.modifica layout di boxplot e aggiunta di etichette

enter image description here

boxplot(len~supp*dose, data=ToothGrowth, notch=TRUE, 
    col=(c("gold","darkgreen")), 
    main="Tooth Growth", xlab="Suppliment and Dose", names = supp) 

    # some unsuccessful trials 
# to add names 
boxplot(len~supp*dose, data=ToothGrowth, notch=TRUE, 
    col=(c("gold","darkgreen")), 
    main="Tooth Growth", xlab="Suppliment and Dose", names = supp*dose) 
# to remove the plot outline 
boxplot(len~supp*dose, data=ToothGrowth, notch=TRUE, 
    col=(c("gold","darkgreen")), 
    main="Tooth Growth", xlab="Suppliment and Dose", bty="n") 

risposta

9

Questo dovrebbe iniziare. La chiave è sapere che se si salvano i risultati di boxplot in un oggetto mentre si imposta plot = FALSE, si ottengono tutte le informazioni su dove ogni oggetto va. Quindi è possibile utilizzare queste informazioni per aggiungere testo tramite text.

d <- boxplot(len~supp*dose, data=ToothGrowth,plot = FALSE) 

boxplot(len~supp*dose, data=ToothGrowth, notch=TRUE, 
    col=(c("gold","darkgreen")), 
    main="Tooth Growth", xlab="Suppliment and Dose",axes = FALSE) 

for (i in 1:ncol(d$stats)){ 
    text(i,d$stats[,i],labels = d$stats[,i],cex = 0.75,adj = c(0.5,0)) 
    text(i,d$stats[5,i]+1,labels = paste0("n=",d$n[i]),cex = 0.75) 
    text(i-0.25,d$stats[3,i],labels = d$names[i],adj = 1,cex = 0.75) 
} 

Vorrei, tuttavia, sottolineare che chi ha suggerito che si:

  • rimuovere gli assi
  • annotare ogni grafico a scatole con i valori quantile e le dimensioni del campione

non dovrebbe dare consigli a chiunque su come creare grafici. Mai. Hanno fatto con successo il tuo boxplot molto, molto peggio.

enter image description here

+3

grazie, vorrei poter passare il messaggio - a volte ricevo suggerimenti tali, ho bisogno di seguire gli ordini (!)! – shNIL