2012-11-02 10 views
15

Mi piacerebbe avere delle belle etichette sull'asse y. Ad esempio, preferisco avere 1000 invece di 1000. Come posso farlo in ggplot? Ecco un esempio minimo:Separatore delle migliaia nell'etichetta dell'asse xo

x <- data.frame(a=c("a","b","c","d"), b=c(300,1000,2000,4000)) 
ggplot(x,aes(x=a, y=b))+ 
       geom_point(size=4) 

Grazie per qualsiasi suggerimento.

risposta

23

Con i pacchetti scales, diventano disponibili alcune opzioni di formattazione: virgola, dollaro, percentuale. Vedere gli esempi in ?scale_y_continuous.

penso che questo fa ciò che si vuole:

library(ggplot2) 
library(scales) 

x <- data.frame(a=c("a","b","c","d"), b=c(300,1000,2000,4000)) 

ggplot(x, aes(x = a, y = b)) + 
    geom_point(size=4) + 
    scale_y_continuous(labels = comma) 
+0

Questo è tutto. Molte grazie. – giordano

1

migliaia abbellire con qualsiasi personaggio con funzione di base format():

Esempio 1 (separati da virgole).

format(1000000, big.mark = ",", scientific = FALSE) 
[1] "1,000,000" 

Esempio 2 (spazio separato).

format(1000000, big.mark = " ", scientific = FALSE) 
[1] "1 000 000" 

Applicare format() a ggplot etichette assi che utilizzano una funzione anonima:

ggplot(x, aes(x = a, y = b)) + 
     geom_point(size = 4) + 
     scale_y_continuous(labels = function(x) format(x, big.mark = ",", 
                 scientific = FALSE)) 
Problemi correlati