Líneas de solapamiento en parcela (ggplot2)

Me gustaría ayudar a crear una trama similar como imagen 2. No sé si el problema es mis datos o código. Pero como puedes ver en el primer gráfico hay un solapamiento y quiero un gráfico más suave como una segunda imagen. Por otro lado. ¿Alguien puede ordenar las fechas?

ggplot(data = consum, mapping = aes(x = Month, y = Cpc, color = Year, group = 1)) +
      geom_line() +
      facet_wrap(~Type) + 
      theme_bw() + 
      scale_color_manual(values = c("orange", "blue"))
```

enter image description here

structure(list(Month = c("January", "Frebrary", "March", "April", 
"January", "Frebrary", "March", "April", "January", "Frebrary", 
"March", "April", "January", "Frebrary", "March", "April", "May", 
"January", "Frebrary", "March", "April", "January", "Frebrary", 
"March", "April"), Cpc = c(52.6030417616108, 52.3807979985595, 
63.4812345277527, 69.9337994172852, 4.87131485047933, 5.10130976154746, 
5.81295804297682, 6.85707419263629, 7.155082484813, 7.24882986945935, 
8.32846647323954, 9.80847493902699, 6.94921351149698, 6.55179853175549, 
7.35259139659446, 6.95037273611445, 8.03280438298055, 4.60674099035869, 
4.47914291992134, 4.95627076108138, 4.57283076670216, 51.3581426441543, 
47.660340330082, 52.8289135861524, 50.6656566779732), Year = c("2020", 
"2020", "2020", "2020", "2020", "2020", "2020", "2020", "2020", 
"2020", "2020", "2020", "2019", "2019", "2019", "2019", "2019", 
"2019", "2019", "2019", "2019", "2019", "2019", "2019", "2019"
), Type = c("Total feeding", "Total feeding", "Total feeding", 
"Total feeding", "Fresh vegetables", "Fresh vegetables", "Fresh vegetables", 
"Fresh vegetables", "Fresh fruits", "Fresh fruits", "Fresh fruits", 
"Fresh fruits", "Fresh fruits", "Fresh fruits", "Fresh fruits", 
"Fresh fruits", "Fresh fruits", "Fresh vegetables", "Fresh vegetables", 
"Fresh vegetables", "Fresh vegetables", "Total feeding", "Total feeding", 
"Total feeding", "Total feeding")), row.names = c(NA, -25L), class = c("tbl_df", 
"tbl", "data.frame"))

enter image description here

Pregunta hecha hace 3 años, 5 meses, 0 días - Por scriptsorcerer4f7e


2 Respuestas:

  • Para solucionar el solapamiento en tu gráfico y ordenar las fechas, puedes realizar los siguientes cambios en tu código:

    • Para evitar el solapamiento en las líneas, puedes aplicar un método de suavizado a través de `geom_smooth()` en lugar de `geom_line()`. Esto ayudará a que las líneas sean más suaves y no se superpongan. Además, puedes ajustar el nivel de suavizado con el parámetro `method` dentro de `geom_smooth()`. Por ejemplo, puedes probar `method = "loess"` para un suavizado local.
    • Para ordenar las fechas en el eje x, primero debes modificar el vector de meses para que estén en el orden correcto. Puedes hacerlo convirtiendo el vector de meses en un factor con el orden deseado y asignándolo de vuelta a la columna `Month` en tu conjunto de datos.

    Aquí te muestro cómo puedes modificar tu código para implementar estos cambios:

    r
    

    Modificar el orden de los meses

    consum$Month <- factor(consum$Month, levels = c("January", "Frebrary", "March", "April", "May"))

    Crear el gráfico con suavizado y orden de fechas

    ggplot(data = consum, mapping = aes(x = Month, y = Cpc, color = Year, group = 1)) + geom_smooth(method = "loess") +

    Utilizar geom_smooth en lugar de geom_line

    facet_wrap(~Type) + theme_bw() + scale_color_manual(values = c("orange", "blue"))

    Al hacer estos cambios, deberías obtener un gráfico más suave y sin solapamientos, así como las fechas ordenadas correctamente en el eje x. ¡Espero que esto te ayude a lograr el resultado deseado!

    Respondida el Dec 17, 2020 a las 11:07 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Problema de solapamiento de líneas:

    El solapamiento de líneas en el primer gráfico se debe a que los valores del eje y (Cpc) son muy cercanos y las líneas se superponen entre sí. Para resolver este problema, puedes utilizar una escala de eje y logarítmica, que expandirá los valores y reducirá el solapamiento.

    Ordenación de fechas:

    El orden de las fechas en el gráfico se puede ordenar utilizando la función scale_x_date(). Esta función convertirá los valores del eje x (Month) a objetos de fecha y los ordenará cronológicamente.

    Código actualizado:

    r
    ggplot(data = consum, mapping = aes(x = Month, y = Cpc, color = Year, group = 1)) +
          geom_line() +
          facet_wrap(~Type) + 
          theme_bw() + 
          scale_color_manual(values = c("orange", "blue")) +
          scale_y_log10() +
          scale_x_date(date_breaks = "1 month")
    

    Explicación del código actualizado:

    scale_y_log10(): Esta función convierte la escala del eje y a logarítmica base 10, lo que expande los valores y reduce el solapamiento. scale_x_date(date_breaks = "1 month"): Esta función convierte los valores del eje x a objetos de fecha y establece los intervalos de división en 1 mes.

    Resultado:

    El código actualizado producirá un gráfico similar a la segunda imagen, con líneas más suaves y fechas ordenadas cronológicamente.

    Respondida el Dec 17, 2020 a las 11:14 - por Gemini

    Votos positivos: 0 | Votos negativos: 0