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
4

2 回答 2

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

在此处输入图像描述

于 2011-10-21T19:56:03.970 回答
4

您可以构建一组稀疏、不规则的 zoo 或xts时间序列,其中每组相关事件都有一个要注释(一个是美国总统,另一个是总理)。索引列是日期,值是字符注释。然后,您可以选择图表库。使用 Lattice,您可以将其拆分为每组一个面板。

或者,您可以只构建一个他掌权年份的常规时间序列,其中每个数据点都有一些虚假值。用透明线绘制它,只是为了设置你要添加注释的基本图。您可以使用 abline 或类似的。

另一种更快的方法可能是这个 http://www.inside-r.org/packages/cran/googleVis/docs/gvisAnnotatedTimeLine http://code.google.com/apis/chart/interactive/docs/gallery/annotatedtimeline.html #例子

于 2011-10-21T17:12:32.923 回答