2012-08-13 11 views
5

Ho notato che, utilizzando il pacchetto scales, è possibile visualizzare dollari su un asse, utilizzando l'opzione scales = dollar all'interno, ad esempio, scale_y_log10(). Un'opzione come scales = euro sembra mancare. C'è un modo facile per me di ottenere lo stesso effetto?Euro-sign in ggplot: pacchetto bilance

risposta

12

È facile modificare dollar_format e cambiare il simbolo in euro. Eseguire questo e metterlo nel codice come si sarebbe chiamata dollar_format

euro_format <- function(largest_with_cents = 100000) { 
    function(x) { 
    x <- round_any(x, 0.01) 
    if (max(x, na.rm = TRUE) < largest_with_cents & 
     !all(x == floor(x), na.rm = TRUE)) { 
     nsmall <- 2L 
    } else { 
     x <- round_any(x, 1) 
     nsmall <- 0L 
    } 
    str_c("€", format(x, nsmall = nsmall, trim = TRUE, big.mark = ",", scientific = FALSE, digits=1L)) 
    } 
} 
+3

Grazie mille, questo funziona bene! Per quelli ancora confusi, è necessario avere i pacchetti 'reshape' e' stringr' caricati, oltre a 'ggplot' e' scale', per fare in modo che funzioni. –

+1

Su un test limitato, ho trovato il seguente lavoro, che si basa solo su '' ggplot2'' e '' scale'': '' euroFrance <- function (x) { paste0 (formato (x, big.mark = " ", decimal.mark =", ", trim = TRUE, scientific = FALSE)," € ")}' '(dove ho selezionato stili francesi in contrasto con l'esempio di Luciano e mostra la gamma di possibilità). O per dirlo in modo diverso, se non hai bisogno di preoccuparti di arrotondare o tagliare i decimali, sarà sufficiente una semplice funzione. Oh e lo chiameresti così: '' + scale_y_continuous (labels = euroFrance, breaks = etc.'' – PatrickT

6

È possibile utilizzare i prefix e suffix argomenti di dollar_format

Ad esempio come questo:

library(ggplot2) 
library(scales)  
ggplot(diamonds) + geom_point(aes(x = carat, y = price)) + scale_y_continuous(labels = dollar_format(suffix = "€", prefix = "")) 
+0

Sto ricevendo un errore sulla falsariga di 'Non tutti i caratteri in ~/R/stuff.Rmd potrebbe essere codificato usando ISO8859-1 Per salvare usando una codifica diversa, scegli "File | Salva con codifica ..." dal menu principale. Quale codifica suggeriresti per la tua soluzione? – DaveRGP

+0

Questo funziona per me. Grazie – andrii