情节中的替代单位()

时间:2011-12-28 14:52:20

标签: r

我有两个向量(在数据框中),我想要像这样plot(df$timeStamp,df$value)绘制,它本身很好用。现在,该图以纯数字方式显示时间戳,作为x轴上的标记。

当我将时间戳的向量格式化为“hh:mm:ss”的向量时,plot()会抱怨(这是有道理的,因为x轴数据现在是字符串的向量)。

有没有办法说plot(x-vector, y-vector, label-x-vector)其中label-x-vector包含要沿x轴显示的元素?

2 个答案:

答案 0 :(得分:2)

一般问题的最后一部分是用两个命令而不是一个命令完成的。如果您查看?plot.default(从?plot链接),您会看到一个选项,使用xaxt参数(xaxt = 'n')将x轴全部放在一起。这样做,然后使用axis使x轴成为你想要的(检查?axis)。我不知道你的时间戳目前是什么格式,所以很难进一步帮助。

一般情况下......

plot(x-vector, y-vector, xaxt = 'n')
axis(1, x-vector, label-x-vector)

(绘图的帮助可能只是R-help最混乱的部分,但是一旦你习惯了plot.defaultaxispar,你就会开始得到更好地处理事情)

答案 1 :(得分:2)

如果你给他们正确的信息,那么标准的R图非常适合做你想要的。如果您可以将时间戳转换为实际时间对象(Date或POSIXct对象),则plot将倾向于执行正确的操作。请尝试以下示例:

tmp <- as.POSIXct( seq(0, length=10, by=60*5), origin='2011-12-28' )
tmp
plot( tmp, runif(10) )
tmp2 <- as.POSIXct( seq(0, length=10, by=60*60*5), origin='2011-12-28' )
tmp2
plot( tmp2, runif(10) )
tmp3 <- as.POSIXct( seq(0, length=10, by=60*60/2), origin='2011-12-28' )
tmp3
plot( tmp3, runif(10) )

在每种情况下,刻度标签都非常有意义,但是如果你想要一种不同的格式,那么你可以按照@John的例子来抑制默认轴,然后使用axis.POSIXct并指定你想要的格式。

这些例子使用相同的间隔时间(由于我的懒惰),但在不等间隔时间内同样有效。