Esta pregunta se deriva de un question and its answers.líneas de trazado y la estética del grupo en ggplot2
En primer lugar algunos datos de juguete anterior:
df = read.table(text =
"School Year Value
A 1998 5
B 1999 10
C 2000 15
A 2000 7
B 2001 15
C 2002 20", sep = "", header = TRUE)
La pregunta original preguntó cómo trazar líneas Valor años para cada escuela. Las respuestas más o menos corresponden a p1 y p2 a continuación. Pero también considere p3.
library(ggplot2)
(p1 <- ggplot(data = df, aes(x = Year, y = Value, colour = School)) +
geom_line() + geom_point())
(p2 <- ggplot(data = df, aes(x = factor(Year), y = Value, colour = School)) +
geom_line(aes(group = School)) + geom_point())
(p3 <- ggplot(data = df, aes(x = factor(Year), y = Value, colour = School)) +
geom_line() + geom_point())
Ambos p1 y p2 hacen el trabajo. La diferencia entre p1 y p2 es que p1 trata a Year
como numérico, mientras que p2 trata a Year
como un factor. Además, p2 contiene una estética group
en geom_line
. Pero cuando la estética group
se reduce como en p3, las líneas no se dibujan.
La pregunta es: ¿Por qué es necesaria la estética group
cuando la variable del eje x es un factor, pero la estética group
no es necesaria cuando la variable del eje x es numérica?
Así que cuando 'x' es numérico, no se hacen suposiciones acerca de la agrupación de las observaciones por el factor (y no se puede hacer porque, obviamente,' x' no es un factor). Supongo que lo que me confundía en el caso de 'x' numérico es que aún es posible obtener la línea simple especificando' group = 1' pero múltiples líneas sin especificación 'group'. –
Sí, @Sandy Muspratt, en su último caso, 'x' numérico proporciona un orden natural pero no un factor para agrupar, por lo tanto entran en juego otras variables categóricas. Me tomó un tiempo entenderlo, ahora es lógico. (Gracias por aceptar). – gauden
Gracias por la aclaración –