2011-10-21 60 views
7

現在卡扎菲的40多年的規則已經結束,我想要建立一個時代線圖與他那個時代的其他國家的時代。例如美國總統,德國總理等 因此,X軸將是時間,Y軸國家和時間軸分裂 - 在正確的時間範圍內 - 顯示尼克松,福特等美國時間線的最佳技術

正如我想學習R ,我寧願使用該語言的解決方案,但有一種感覺,它不是最好的解決方案。對於這種或另一種免費解決方案的任何建議?

我也許應該補充一點,如果在R上的數據幀將開始

Country Boss TookCharge 

USA  Nixon 1969-01-20 
USA  Ford 1974-08-09 
Germany Brandt 1969-10-22 
Germany Schmidt 1974-05-16 
+3

有趣。你可以在你的時間表上標明西方何時停止了妖魔化卡扎菲國外化財產(在70年代和80年代被認爲是十分邪惡的),並開始將他妖魔化爲腐敗,鎮壓,大屠殺等。 – MusiGenesis

+0

Google Docs Spreadsheets有一個時間線小工具,可以插入。這是非常挑剔,打破了比作品更多。我也很樂意看到這件事完成。R. R強大而靈活。 – Farrel

回答

5

這是ggplot一個簡單的任務:

創建一些數據:

x <- data.frame(
    country = rep(c("USA", "Germany"), each=2), 
    boss = c("Nixon", "Ford", "Brandt", "Schmidt"), 
    start = as.Date(c("1969-01-20", "1974-08-09", "1969-10-22", "1974-05-16")) 
) 

使劇情:

library(ggplot2) 
ggplot(x, aes(x=start, y=country)) + 
    geom_line() + 
    geom_point() + 
    geom_text(aes(label=boss), hjust=0, vjust=0) + 
    xlim(c(min(x$start), max(x$start)+5*365)) # Add some space to right 

enter image description here

+0

謝謝你們。這使我走上了正軌。有沒有一個可愛的方式來替代vjust,以便連續的名字可以落在線條的上方和下方。當長名字的領導者迅速相互接替,例如在80年代的蘇聯時,情節變得不可讀 – pssguy

+0

@pssguy是的,你可以提供一個向量作爲'vjust = ...'的參數 - 例如'vjust = c(0,1 )'應該工作,因爲矢量回收規則(未測試)。 – Andrie

+0

感謝您的建議,但我得到了「設定美觀時,它們可能只有一個值」的錯誤。嘗試設置一個變量開關= C(0,1),然後VJUST =開關,但也沒有工作。是否有可能創建一個vjust可以調用的ggplot之外的函數。我對這個方法有點朦朧 – pssguy

4

你可以構建一套稀疏,不規則的動物園或xts時間序列與每個組一個相關事件的註釋(美國總統在一位,另一位大臣)。索引列將是日期,值將是字符註釋。然後,您可以選擇圖表庫。使用萊迪思,您可以將其分成每個組的一個面板。

或者你也可以建立一個單獨的常規時間序列,他每次數據點都有一些虛假的值。用透明線繪製該圖,只需設置基準圖,然後添加註釋即可。你可以使用abline或類似的。

另一種更快捷的方法可能是這 http://www.inside-r.org/packages/cran/googleVis/docs/gvisAnnotatedTimeLine http://code.google.com/apis/chart/interactive/docs/gallery/annotatedtimeline.html#Example

+1

Tavis。感謝您的建議。我正在玩googleVis選項,這可能是一個更好的網絡解決方案,但R可以提供+1 – pssguy