2010-11-18 10 views
11

Sto provando ad aggiungere del testo sul lato destro di un barilotto orizzontale alle stesse altezze di ogni barra, tuttavia, sia text() che axis() non sembrano tracciare questo alle altezze corrispondenti a ciascuna bar.aggiungere testo a plotter orizzontale in R, asse y su scala diversa?

Ecco un barplot simile

x <- runif(10, 0,1) 
y <- matrix(c(x, 1-x), nrow=2, ncol=10, byrow=TRUE) 
barplot(y, horiz=TRUE, beside=FALSE, names.arg=seq(1,10,1), las=1, xlim=c(0, 1.2)) 

Nessuna di queste due opzioni allineare correttamente, come funziona il ridimensionamento qui?

axis(4, at=seq(1,10,1), labels=seq(1,10,1)) 
text(1.1, seq(1,10,1), labels=seq(1, 10, 1)) 

risposta

14

Con chacking la documentazione di barplot, si può vedere che ha un valore di ritorno invisibile: i punti medi delle barre. È possibile utilizzare quelli per aggiungere ulteriori informazioni alla trama.

x <- runif(10, 0,1) 
y <- matrix(c(x, 1-x), nrow=2, ncol=10, byrow=TRUE) 
bp <- barplot(y, horiz=TRUE, beside=FALSE, names.arg=seq(1,10,1), las=1, 
       xlim=c(0, 1.2)) 
text(x, bp, signif(x,2), pos=4) 
bp 
+0

THanks, che è grande. Valore Un vettore numerico (o matrice, quando accanto = VERO), ad esempio mp, che fornisce le coordinate di tutti i punti medi della barra disegnati, utile per l'aggiunta al grafico. – CCID

+0

Ho copiato il testo dal file di help di barplot – CCID

+1

Perché la mia foto di ieri è stata rimossa? Usare un grafico aiuterebbe a capire. – buhtz

Problemi correlati