2013-02-14 14 views
11

Ho creato un diagramma a riquadri, i dati a sinistra sono la variabile continua e i dati a destra hanno circa 10 opzioni univoche. Quando creo il boxplot non riesco a vedere le etichette. Come faccio a mostrare tutte le etichette, possibilmente in verticale?Come visualizzare tutte le etichette di boxplot

boxplot(data$Rate ~ as.factor(data$Purpose)) 

Mi sono guardato intorno e non riesco a capire cosa sto cercando di seguire.

risposta

30

È possibile aggiungere l'argomento las=2 alla funzione boxplot() per rendere tutte le etichette perpendicolari all'asse.

df<-data.frame(Rate=rnorm(100),Purpose=rep(letters[1:10],each=10)) 
boxplot(df$Rate~df$Purpose,las=2) 

Se i nomi delle etichette sono lunghi, è necessario regolare anche i margini di stampa.

par(mar=c(7,5,1,1)) 
boxplot(df$Rate~df$Purpose,las=2) 
+0

+1 Beh, è ​​molto più facile che la soluzione data nel settore della R ... FAQ – juba

+1

La strategia 'las' è limitato a 4 angoli. La strategia '' testo (..., srt = | angle |, xpd = TRUE) 'ti dà 360 possibili angoli –

6

Quando si vogliono specificare con precisione i vostri assi etichette, ecco la strategia che uso:

##Generate a boxplot without axes 
boxplot(count ~ spray, data = InsectSprays, axes=FALSE) 

##Add in a y-axis 
axis(2, seq(0,25, 5), seq(0, 25, 5)) 

##Add in an x-axis 
##las=2 changes the orientation 
axis(1, 1:6, paste("Big Label", 1:6), las=2) 
3

C'è una voce nella R FAQ su come ruotare le etichette degli assi nella grafica di base:

http://cran.r-project.org/doc/FAQ/R-FAQ.html#How-can-I-create-rotated-axis-labels_003f

Ma io personalmente preferirei usare ggplot2, che rende più facile:

data <- data.frame(Rate=rnorm(1:1000),Purpose=sample(c("foo","bar","baz"),1000,replace=TRUE)) 
ggplot(data, aes(x=factor(Purpose), y=Rate)) + geom_boxplot() + theme(axis.text.x = element_text(angle=90, vjust=0.5)) 

enter image description here

Problemi correlati