2011-12-21 83 views
21

線,我想繪製看起來像這樣的一個時間序列:結合點與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

這是不是我想要的......我只是感覺我忽略的東西...

有什麼建議?感謝你們的幫助。

+4

也許你想'組= Altersgr'? – joran 2011-12-21 15:58:13

+0

你用來生成第二個數字的確切代碼是什麼? – 2011-12-21 16:00:35

+0

@joran:你是對的!設置組= Altersgr和添加geom_line()工作正常。 – Dominik 2011-12-29 10:32:06

回答

23

您可能會發現使用'組」 AES會幫助你得到你想要的結果。例如:

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

+0

這是錯誤的組合。但謝謝你的榜樣! – Dominik 2011-12-29 10:34:34

11

使用虹膜數據集下面的示例正常工作:

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