2017-02-07 49 views
1

我試圖根據兩個類別創建散點圖,並連接具有相同ID的線的任意點。我創建了一個示例數據集。我希望日子成爲x軸,將得分作爲y軸,併爲每個值研究項目設置不同的顏色。我可以在ggplot中做到這一點,但我無法弄清楚如何連接來自同一個ID的點。使用ggplot中的相同ID的連線創建散點圖

library(ggplot2) 
Id <- c(1,2,3,4,1,3) 
Score <- c(24,27,17,25,28,24) 
Study <- c(1,1,1,2,2,2) 
days <- c(8,17,42,36,69,80) 

X <- as.data.frame(cbind(Id, Score, Study, days)) 

ggplot(X, aes(days, Score)) + 
geom_jitter(width = 0.3, height = 0.3, aes(colour = as.factor(Study))) + 
geom_segment(aes(x=42, y=17, xend=80, yend=24), lty=2, colour="purple") + 
geom_segment(aes(x=8, y=24, xend=69, yend=28), lty=2, colour="purple") 

enter image description here

例如想我那裏是24 ID 1的值和28,並且還從17至24,ID 3的值我添加這些與geom_segment之間的線,但在實際的數據集中,我正與他們合作的將是數百個連接。感謝您的幫助,謝謝!

+0

重現性好的例子,明確的問題陳述和嘗試的解決方案! – Gregor

回答

2

使用group審美:

ggplot(X, aes(days, Score)) + 
    geom_jitter(width = 0.3, height = 0.3, aes(colour = as.factor(Study))) + 
    geom_line(aes(group = Id), lty = 2, colour = "purple") 

?geom_line的描述:

group審美確定哪些情況下被連接在一起。

+0

這很棒,而且非常簡單。非常感謝,我真的很感激! –