lineas - pairs en r
Agrupar datos y trazar lĂneas mĂșltiples. (3)
¿Es esto lo que quieres? Necesita group = School_id
para decirle a ggplot2 que dibuje líneas separadas para cada escuela. Si desea que el eje horizontal incluya todos los años entre 1998 y 2005, elimine el factor
en x = factor(year)
library(ggplot2)
df = read.table(text = "School_id Year Value
A 1998 5
B 1998 10
C 1999 15
A 2000 7
B 2005 15", sep = "", header = TRUE)
ggplot(data = df, aes(x = factor(Year), y = Value, color = School_id)) +
geom_line(aes(group = School_id)) + geom_point()
Me gustaría trazar varias líneas en R para este conjunto de datos: (x = Año, y = Valor)
School_ID Year Value
A 1998 5
B 1998 10
C 1999 15
A 2000 7
B 2005 15
Cada escuela tiene datos para diferentes años. Me gustaría tener una línea para cada escuela.
La función de trazado en la base R no admite la agrupación, por lo que debe mostrar los grupos uno por uno. GGPLOT maneja bien el agrupamiento. También sugiero mirar Trellis XYPLOT que te permite trazar grupos separados.
Así es como puede crear un gráfico de líneas agrupadas básicas utilizando Trellis:
library(lattice)
rm(list = ls()) # clear objects
graphics.off() # close graphics windows
test = data.frame(x = rep(1:3, each = 2),
group = rep(c("Group 1","Group 2"),3),
y= c(22,8,11,4,7,5)
)
xyplot(y~x,
type="b",
group=group,
data=test,
auto.key =list(
points = FALSE,
columns=2,
lines = TRUE)
)
Vamos a crear algunos datos:
dd = data.frame(School_ID = c("A", "B", "C", "A", "B"),
Year = c(1998, 1998, 1999, 2000, 2005),
Value = c(5, 10, 15, 7, 15))
Luego, para crear una gráfica en gráficos base, creamos una gráfica inicial de un grupo:
plot(dd$Year[dd$School_ID=="A"], dd$Value[dd$School_ID=="A"], type="b",
xlim=range(dd$Year), ylim=range(dd$Value))
entonces agregue iterativamente en las líneas:
lines(dd$Year[dd$School_ID=="B"], dd$Value[dd$School_ID=="B"], col=2, type="b")
lines(dd$Year[dd$School_ID=="C"], dd$Value[dd$School_ID=="C"], col=3, type="b")
He usado type="b"
para mostrar los puntos y las líneas.
Alternativamente , utilizando ggplot2:
require(ggplot2)
##The values Year, Value, School_ID are
##inherited by the geoms
ggplot(dd, aes(Year, Value,colour=School_ID)) +
geom_line() +
geom_point()