Con este marco de datos ("df"):
year pollution
1 1999 346.82000
2 2002 134.30882
3 2005 130.43038
4 2008 88.27546
Intento crear un gráfico de líneas como este:
plot5 <- ggplot(df, aes(year, pollution)) +
geom_point() +
geom_line() +
labs(x = "Year", y = "Particulate matter emissions (tons)", title = "Motor vehicle emissions in Baltimore")
El error que obtengo es:
geom_path: cada grupo consta de una sola observación. ¿Necesitas ajustar la estética del grupo?
El gráfico aparece como un diagrama de dispersión aunque quiero un gráfico de líneas. Traté de reemplazar geom_line()
con geom_line(aes(group = year))
pero eso no funcionó.
En una respuesta, me dijeron que convirtiera el año en una variable de factor. Lo hice y el problema persiste. Esta es la salida de str(df)
y dput(df)
:
'data.frame': 4 obs. of 2 variables:
$ year : num 1 2 3 4
$ pollution: num [1:4(1d)] 346.8 134.3 130.4 88.3
..- attr(*, "dimnames")=List of 1
.. ..$ : chr "1999" "2002" "2005" "2008"
structure(list(year = c(1, 2, 3, 4), pollution = structure(c(346.82,
134.308821199349, 130.430379885892, 88.275457392443), .Dim = 4L, .Dimnames = list(
c("1999", "2002", "2005", "2008")))), .Names = c("year",
"pollution"), row.names = c(NA, -4L), class = "data.frame")
df
no sea lo que crees que es. Indique su pregunta en forma reproducible, es decir, muestre el resultado dedput(df)
.Respuestas:
Solo tiene que agregar
group = 1
a ggplot o geom_line aes ().Referencia: Cookbook for R, Capítulo: Graphs Bar_and_line_graphs_ (ggplot2), Line graphs.
Prueba esto:
fuente
group
argumento. La agrupación única por ejemplo,color
no sería justo sufficient.I tenido este problema y espero que esto ayude a alguien corriendo a la mismaObtiene este error porque una de sus variables es en realidad una variable de factor. Ejecutar
para comprobar esto Luego haga este cambio de doble variable para mantener los números del año en lugar de transformarlos en números de nivel "1,2,3,4":
EDITAR: parece que su data.frame tiene una variable de clase "matriz" que podría causar el pb. Intenta entonces:
y trama de nuevo?
fuente
Tuve un problema similar con el marco de datos:
Creo que la variable para el eje x debería ser numérica, de modo que geom_line sepa cómo conectar los puntos para dibujar la línea.
después de cambiar la segunda columna a numérica:
entonces funciona
fuente
Inicie R en una nueva sesión y péguelo en:
fuente
Tengo un aviso similar. Fue porque había especificado el eje x en términos de algún porcentaje (por ejemplo: 10% A, 20% B, ...). Entonces, un enfoque alternativo podría ser que multiplique estos valores y los escriba en la forma más simple.
fuente