Saltar al contenido

Formateo de etiquetas de eje ggplot2 con comas (y K? MM?) Si ya tengo una escala y

Solución:

Para el formato de coma, debe incluir el scales biblioteca para label=comma. El “error” que mencionaste es en realidad solo una advertencia, porque usaste ambos ylim y luego scale_y_continuous. La segunda llamada anula la primera. En su lugar, puede establecer los límites y especificar etiquetas separadas por comas en una sola llamada a scale_y_continuous:

library(scales)

ggplot(df, aes(x = Date, y = Cost))+
  geom_line(lwd = 0.5) +
  geom_line(aes(y = Cost_7), col="red", linetype = 3, lwd = 1) +
  geom_line(aes(y = Cost_30), col="blue", linetype = 5, lwd = 0.75) +
  xlim(c(left, right)) + 
  xlab("") +
  scale_y_continuous(label=comma, limits=c(min(df$Cost[df$Date > left]), 
                                           max(df$Cost[df$Date > left])))

Otra opción sería fundir sus datos en un formato largo antes de trazar, lo que reduce la cantidad de código necesario y agiliza las asignaciones estéticas:

library(reshape2)

ggplot(melt(df, id.var="Date"), 
       aes(x = Date, y = value, color=variable, linetype=variable))+
  geom_line() +
  xlim(c(left, right)) + 
  labs(x="", y="Cost") +
  scale_y_continuous(label=comma, limits=c(min(df$Cost[df$Date > left]), 
                                           max(df$Cost[df$Date > left])))

De cualquier manera, para poner los valores de y en términos de miles o millones, podría dividir los valores de y entre 1,000 o 1,000,000. he usado dollar_format() a continuación, pero creo que también necesitará dividir por la potencia apropiada de diez si usa unit_format (por sugerencia de @ joran). Por ejemplo:

div=1000

ggplot(melt(df, id.var="Date"), 
       aes(x = Date, y = value/div, color=variable, linetype=variable))+
  geom_line() +
  xlim(c(left, right)) + 
  labs(x="", y="Cost (Thousands)") +
  scale_y_continuous(label=dollar_format(),
                     limits=c(min(df$Cost[df$Date > left]), 
                              max(df$Cost[df$Date > left]))/div)

Usar scale_color_manual y scale_linetype_manual para configurar colores y tipos de línea personalizados, si lo desea.

ingrese la descripción de la imagen aquí

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *