2011-03-05 21 views
5

Esto parece ser un ejemplo similar a algunos de los ejemplos de Hadley en su libro ggplot2, pero parece que no puedo hacer que esto funcione. dado:Cómo trazar dos líneas en ggplot2

off = c(0, 2000, 4000, 6000, 25, 3000, 6050, 9000) 
tim = c(0, -100, -200, -300 -25, -125, -225, -325) 
col = c(1, 1, 1, 1, 2, 2, 2, 2) 
dataf = data.frame(off, tim, col) 
p = ggplot(dataf, aes(off, tim, color=col)) + geom_point() + geom_line() 
p 

creo que esto debería trazar estos ocho puntos y sacar una línea a través de los primeros cuatro puntos con col = 1 y otra línea a través de los últimos cuatro puntos con col = 2. Sin embargo, lo que termino con es una línea alternando segmentos rojos y azules.

¿Por qué ?!

Respuesta

6

Porque col es numérico. La agrupación se establece en la interacción de las variables de los factores, pero como no hay ninguna, la línea se traza como un solo grupo. Usted puede cambiar col a un factor,

ggplot(datf, aes(off, tim, color=factor(col))) + geom_point() + geom_line() 

o manualmente ajustar la agrupación

ggplot(datf, aes(off, tim, color=col, group=col)) + geom_point() + geom_line() 
+0

Gracias Ista, esto hace el truco y explica algunas cosas que no se recuperó del libro de Hadley. – Plsvn

Cuestiones relacionadas