我有this个数据集。
我目前的R代码:
plot(dailyDataCenOF$cenInOFThroughput, type = "l", xaxt = "n", col = "blue",
main = "Throughput",
xlab = "Time",
ylab = "Throughput (Mbps)")
axis(side = 1, at = seq(1, 48, by = 2), labels = 0:23)
par(new = TRUE)
plot(dailyDataCenOF$cenOutOFThroughput, type = "l", xaxt = "n", col = "red",
axes = F, xlab = NA, ylab = NA)
绘制以下内容:
结果 不 我想拥有的内容。理想情况下,我希望将数据集中的实际时间(日期不是必需的)作为X轴标签。我只设法将0:23表示为X轴标记的小时数。我试着用:
axis(side = 1, at = seq(2, 49, by = 2), labels = 0:23, col = "red")
但新标签与之前的标签重叠。即使是不同的颜色也不容易阅读。
当然我可以使用:
axis(side = 3, at = seq(2, 49, by = 2), labels = 0:23, col = "red")
但我的标签应该在底部。
这个问题是否有更优化和/或更有效的解决方案?
谢谢。
答案 0 :(得分:2)
将datetime列强制转换为适当的对象会使这更容易。
d <- read.csv('https://dl.dropboxusercontent.com/u/14322966/20140401.csv')
d[, 1] <- as.POSIXct(d[, 1], format='%Y-%m-%d %H:%M:%S')
d[, 3] <- as.POSIXct(d[, 3], format='%Y-%m-%d %H:%M:%S')
xlim <- range(do.call(c,d[c(1,3)]))
plot(d[, 1:2], type='l', xlab='Time', ylab='Throughput (Mbps)',
xlim=xlim)
par(new = TRUE)
plot(d[, 3:4], type='l', col=2, axes=F, xlab='', ylab='',
xlim=xlim)
axis(4)
box(lwd=2)
计算两列中的日期时间范围可以在两个绘图调用中保持一致的xlim。