我正在处理一组数据,每个数据都包含3个日期的列表,这些日期与三个连续操作之一的时间相关:
action.1 <- sample(seq(as.Date('2010-01-01'), as.Date('2010-02-01'), by="day"), 200, replace=TRUE)
action.2 <- action.1 + sample(seq(0,10,by=1), 200, replace=TRUE)
action.3 <- action.2 + sample(seq(0,40,by=1), 200, replace=TRUE)
为了可视化操作之间的持续时间取决于何时采用action.1
- 例如action.1
的更高频率是否会延长拍摄action.2
的时间?
rankn <- rank(action.1, ties.method = "first")
attach(mtcars)
layout(matrix(c(1,2), 2, 1, byrow = TRUE))
d1 = min(action.1, action.2, action.3)
d2 = max(action.1, action.2, action.3)
plot(table(action.1))
plot(action.1, rankn, col="red3", xlim=c(d1, d2))
points(action.2, rankn, col='green3')
points(action.3, rankn, col='blue3')
但是,我无法弄清楚如何对齐这两个数字,以便频率图中x轴的上限与最右边的红点重合。我尝试设置plot(table(action.1)), xlim=c(d1,d2))
,但它只是使顶部的数字消失了。有没有办法解决这个问题?
答案 0 :(得分:1)
在列表之间找到公共部分,列表应为max(min(list_1), min(list_2),...)
到min(max(list_1), max(list_2),...)
。
问题在于您的d2
:d2 = 2010-03-15
,而应该为其指定:
d2 <- min(max(action.1), max(action.2), max(action.3))
然后,d2 = 2010-02-01
,我也认为d1
,将其分配给d1 <- max(min(action.1), min(action.2), min(action.3))
。如果这是您的预期结果(忽略中文格式):
修改强>
我更喜欢使用par(mfrow = c(2,1))
来管理绘图布局。所以:
par(mfrow = c(2,1))
d1 <- max(min(action.1), min(action.2), min(action.3))
d2 <- min(max(action.1), max(action.2), max(action.3))
plot(table(action.1))
plot(action.1, rankn, col="red3", xlim=c(d1, d2))
points(action.2, rankn, col='green3')
points(action.3, rankn, col='blue3')