Как построить две линии в ggplot2 - PullRequest
5 голосов
/ 05 марта 2011

Это похоже на пример из некоторых примеров Хэдли в его книге 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

Я думаю, что это должно построить эти восемь точек и провести ОДНУ линию через первые четыре точки с col = 1 и еще одну линию через последние четыре точки с col = 2. И все же, в итоге я получаюс - одна строка с чередующимися красными и синими сегментами.

Почему?!

1 Ответ

6 голосов
/ 05 марта 2011

Поскольку col является числовым.Группировка настроена на взаимодействие факторных переменных, но поскольку их нет, линия строится как одна группа.Вы можете изменить col на коэффициент,

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

или вручную установить группировку

ggplot(datf, aes(off, tim, color=col, group=col)) + geom_point() + geom_line()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...