2012-06-12 15 views
6

Voglio tracciare una serie storica con ggplot(), linea di tempo creata con strptime().ggplot2 ignorando la categoria locale LC_TIME?

Fin qui ok: sto ottenendo le abbreviazioni tedesche per i mesi sull'asse del tempo, il mio locale è impostato su Sys.setlocale("LC_TIME"="de_DE.UTF-8"). Quando eseguo lo months() con i miei dati, vengono visualizzati anche in tedesco.

Strano: quando imposto le mie impostazioni internazionali su Sys.setlocale("LC_TIME"="en_GB.UTF-8"), months() mi daranno mesi inglesi, MA ggplot() continuerà ad avere abbreviazioni in tedesco per mesi sull'asse del tempo.

Ho provato alcune altre categorie di Sys.setlocale() ma senza successo.

Da dove viene il ggplot() informazioni su quale lingua scegliere?

+1

Potrebbe creare un esempio riproducibile? –

+0

Bene, la riproducibilità dipende dalle impostazioni locali del sistema. Il mio è "de_DE.UTF-8". Ma quanto segue fornirà le abbreviazioni tedesche per mesi anche se le impostazioni internazionali sono impostate in inglese: Sys.setlocale ("LC_TIME", "en_GB.UTF-8"); data <- data.frame (date = strptime (sort (ISOdate (2010, sample (1:12, 40, replace = TRUE), sample (1: 28,40, replace = TRUE))), format = "% Y -% m-% d "), value = runif (4 0,10,12)); ggplot (data, aes (date, value)) + geom_point() – lambu0815

risposta

0

Guarda le costanti e quindi modifica il valore di month.abb in quello che desideri. Forse:

month.abb <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", 
"Oct", "Nov", "Dec") 
+0

month.abb è già in inglese. Questo non è assolutamente, ciò che sta cercando ggplot. – lambu0815

0

OK, questo è un po 'strano.

con un nuovo spazio di lavoro (ad esempio dopo l'avvio di R) ggplot() può essere interessato da Sys.setlocale(). Dopo che il primo disegno è stato fatto con un'impostazione dataframe, altre impostazioni locali verranno ignorate per quel dataframe.

3

Mi rendo conto di quanto sono in ritardo con questa risposta, ma ho avuto lo stesso problema e sono incappato nel thread mentre cercavo la soluzione.

Per me

Sys.setenv(LANGUAGE="en") 
Sys.setlocale("LC_TIME", "English") 

risolto.

0

Il modo più semplice per farlo funzionare è:

Sys.setlocale("LC_ALL", "en_US.UTF-8") 

Dopo che tutti i ggplots avere una corretta etichette data.

Se è necessario modificare solo il formato ora questo dovrebbe essere sufficiente:

Sys.setlocale("LC_TIME", "en_US.UTF-8") 
Problemi correlati