Объединить точки с линиями с ggplot2
Я хотел бы построить временной ряд, который выглядит так:
![enter image description here]()
что я рисую с помощью:
qplot(Jahr, Wert, data=tu, group = Geschlecht, color = Altersgr) + facet_grid(Geschlecht ~ Land)
Мои данные выглядят следующим образом:
Land Altersgr Geschlecht Jahr Wert
1 DE < 20 J. m 2000 13.0
2 DE 20-<65 J. m 2000 25.7
3 DE 65+ J. m 2000 70.1
4 DE 65-<80 J. m 2000 44.2
5 DE 80+ J. m 2000 213.5
6 BB < 20 J. m 2000 26.8
До сих пор все в порядке. Но мне нужно соединить соответствующие точки (тот же цвет) с линией. Я не мог понять, как это сделать. Если я использую geom_line(), я получил этот результат:
![enter image description here]()
Это не то, что я хочу... У меня просто ощущение, что я что-то пропускаю...
Любые предложения? Спасибо за помощь.
Ответы
Ответ 1
Вы можете обнаружить, что использование команды "group" поможет вам получить желаемый результат. Например:
tu <- expand.grid(Land = gl(2, 1, labels = c("DE", "BB")),
Altersgr = gl(5, 1, labels = letters[1:5]),
Geschlecht = gl(2, 1, labels = c('m', 'w')),
Jahr = 2000:2009)
set.seed(42)
tu$Wert <- unclass(tu$Altersgr) * 200 + rnorm(200, 0, 10)
ggplot(tu, aes(x = Jahr, y = Wert, color = Altersgr, group = Altersgr)) +
geom_point() + geom_line() +
facet_grid(Geschlecht ~ Land)
Что дает найденный здесь график:
![enter image description here]()
Ответ 2
Следующий пример, использующий набор данных диафрагмы, отлично работает:
dat = melt(subset(iris, select = c("Sepal.Length","Sepal.Width", "Species")),
id.vars = "Species")
ggplot(aes(x = 1:nrow(iris), y = value, color = variable), data = dat) +
geom_point() + geom_line()
![enter image description here]()
Ответ 3
Небольшое изменение в коде Пола, чтобы оно не возвращало ошибку, упомянутую выше.
dat = melt(subset(iris, select = c("Sepal.Length","Sepal.Width", "Species")),
id.vars = "Species")
dat$x <- c(1:150, 1:150)
ggplot(aes(x = x, y = value, color = variable), data = dat) +
geom_point() + geom_line()