我有两个向量(在数据框中),我想要像这样plot(df$timeStamp,df$value)
绘制,它本身很好用。现在,该图以纯数字方式显示时间戳,作为x轴上的标记。
当我将时间戳的向量格式化为“hh:mm:ss”的向量时,plot()
会抱怨(这是有道理的,因为x轴数据现在是字符串的向量)。
有没有办法说plot(x-vector, y-vector, label-x-vector)
其中label-x-vector包含要沿x轴显示的元素?
答案 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.default
,axis
和par
,你就会开始得到更好地处理事情)
答案 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
并指定你想要的格式。
这些例子使用相同的间隔时间(由于我的懒惰),但在不等间隔时间内同样有效。