我有許多相關的時間序列,我想一起繪製。我使用ggplot2
這裏是什麼我的數據看起來像一個例子:指向標籤數據的箭頭
set.seed(0)
require(ggplot2)
id <- LETTERS[1:18]
appDates <- as.Date("2000-01-01", origin = '1970-01-01') + 1:10
appRate <- runif(18, 1,4)
appRank <- rank(-appRate - colSums(anorm))
anorm <- array(rnorm(18*11), c(11,18))
tempDf <-lapply(seq_along(appDates), function(x) data.frame(adate = appDates[x], group = 1:18, id = id, arate = appRate + colSums(anorm[1:(x+1),]), ranked = appRank))
tempDf <- do.call(rbind, tempDf)
ggplot(tempDf, aes(x = adate, y = arate, group = group, color = id)) + geom_line()
這是不錯,但我想箭頭從ID標籤,將相關的時間序列,因爲它是很難挑選出一個特定的顏色相似的路徑。
我已經試過`directlabels',但我似乎無法完全得到它
p <- ggplot(tempDf, aes(x = adate, y = arate, group = group, color = id)) + geom_line()
require(directlabels)
direct.label(p,list(last.points, hjust=0.8, vjust = 1))
由什麼,我有點找
手工完成粗例子隨着最終排名的增加,我添加了不同的線條厚度以幫助識別。
p <- ggplot(tempDf, aes(x = adate, y = arate, group = group, color = id, size = ranked)) + geom_line()
p + scale_size(range=c(2.6, 0.4), guide=FALSE)+
guides(colour = guide_legend(override.aes = list(size=seq(2.6,0.4, length.out = 18)[appRank])))
在我看來,'directlabels'版本看起來比箭頭好得多;以編程方式實現也更容易。 – baptiste
是的,我意識到一旦他們全部進來,箭頭就會顯得很糟糕。也許顏色方案的改變可能會有所幫助。現在很難挑出時間序列。 – user1609452
@ user1609452不錯的問題。不管你做什麼,18個時間序列都會被看作是醜陋的,但更重要的是,這將很難得出推論。在[最近的答案](http://stackoverflow.com/questions/17280468/data-visualization-in-r/17281228#17281228)我建議用戶使用熱圖來可視化這些多個時間序列;在這種情況下可能也不合適?很容易將這些組分開,並且可以在不同的時間點輕鬆比較任何組。 – nograpes