2012-06-12 6 views
6

Quiero trazar una serie temporal con ggplot(), línea de tiempo creada con strptime().ggplot2 ignorando la categoría local LC_TIME?

Hasta ahora bien: obtengo las abreviaturas alemanas para los meses en el eje de tiempo, mi configuración regional está configurada en Sys.setlocale("LC_TIME"="de_DE.UTF-8"). Cuando hago months() con mis datos, aparecen en alemán, también.

Extraño: Cuando me puse mi entorno local en Sys.setlocale("LC_TIME"="en_GB.UTF-8"), months() me dará mes ggplot() inglés pero seguirá teniendo abreviaturas Alemana para el mes en el eje de tiempo.

He intentado algunas otras categorías de Sys.setlocale() pero fue en vano.

¿Dónde toma ggplot() la información sobre qué idioma elegir?

+1

Podría crear un ejemplo reproducible? –

+0

Bueno, la reproducibilidad depende de la configuración regional del sistema. El mío es "de_DE.UTF-8". Pero lo siguiente dará abreviaturas alemanas durante meses, incluso si la configuración regional está configurada en inglés: 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

Respuesta

0

Mire? Constantes y luego cambie el valor de month.abb a lo que desee. Quizás:

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

month.abb ya está en inglés. Esto no es, obviamente, lo que ggplot está buscando. – lambu0815

0

Bien, esto es un poco raro.

con un espacio de trabajo nuevo (por ejemplo, después de iniciar R) ggplot() puede verse afectado por Sys.setlocale(). Después de que el primer dibujo se haya realizado con una configuración de marco de datos, se descartarán otras configuraciones regionales para ese marco de datos.

3

Me doy cuenta de lo tarde que estoy con esta respuesta, pero tuve el mismo problema y tropecé con su hilo mientras buscaba una solución.

Para mí

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

resuelto.

0

La manera más fácil de hacer que el trabajo es:

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

Después de que todos los ggplots tienen unas etiquetas de fecha adecuados.

Si necesita cambiar sólo el formato de la hora esto debería ser suficiente:

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