我是R/ggplot新手。我想創建一個連續變量時間序列的geom_line圖,然後添加一個由事件組成的圖層。連續變量及其時間戳存儲在一個data.frame中,事件及其時間戳存儲在另一個data.frame中。R + ggplot:事件時間系列
我會真的喜歡做的事情就像在finance.google.com上的圖表。其中,時間序列是股票價格,並且有「標誌」來表示新聞事件。我實際上並沒有繪製財務報表,但圖表的類型是相似的。我正在嘗試繪製日誌文件數據的可視化。下面是我的意思的例子...
如果明智的(?),我想用獨立的data.frames爲每一層(一個連續變量的觀測,另外對於事件)。
經過一些試驗和錯誤,這是儘可能接近我可以得到的。在這裏,我正在使用ggplot附帶的數據集的示例數據。 「經濟學」包含我想要繪製的一些時間序列數據,「總統」包含一些事件(總統選舉)。
library(ggplot2)
data(presidential)
data(economics)
presidential <- presidential[-(1:3),]
yrng <- range(economics$unemploy)
ymin <- yrng[1]
ymax <- yrng[1] + 0.1*(yrng[2]-yrng[1])
p2 <- ggplot()
p2 <- p2 + geom_line(mapping=aes(x=date, y=unemploy), data=economics , size=3, alpha=0.5)
p2 <- p2 + scale_x_date("time") + scale_y_continuous(name="unemployed [1000's]")
p2 <- p2 + geom_segment(mapping=aes(x=start,y=ymin, xend=start, yend=ymax, colour=name), data=presidential, size=2, alpha=0.5)
p2 <- p2 + geom_point(mapping=aes(x=start,y=ymax, colour=name), data=presidential, size=3)
p2 <- p2 + geom_text(mapping=aes(x=start, y=ymax, label=name, angle=20, hjust=-0.1, vjust=0.1),size=6, data=presidential)
p2
問題:
這是非常稀疏事件OK,但如果有他們的集羣(如在日誌文件中經常發生的),它就會變得混亂。是否有一些技巧可以用來整齊地顯示一小段時間內發生的事件?我在考慮position_jitter,但對於我來說這很難實現。如果有很多這些事件,Google圖表會將這些事件「標誌」疊加在一起。
我實際上不喜歡粘貼與連續測量顯示相同比例的事件數據。我寧願把它放在facet_grid中。問題是所有方面都必須來自相同的數據框架(不知道這是真的)。如果是的話,那也似乎並不理想(或者也許我只是想避免使用重塑?)
有趣的情節:不要指望在共和黨總統掌權後找份工作! – James
這只是最方便和可用的數據作爲例子 - 但是,它確實讓你覺得:-) – Angelo