2011-12-28 18 views
3

我有兩個向量(在一個數據框中),我想這樣繪製這個plot(df$timeStamp,df$value),它本身很好地工作。現在,該圖以純數字方式將時間戳顯示爲x軸上的標記。繪圖上的替代單位()

當我將時間戳矢量格式化爲「hh:mm:ss」向量時,plot()抱怨(這很有意義,因爲x軸數據現在是一個字符串向量)。

有沒有辦法說plot(x-vector, y-vector, label-x-vector)其中label-x-vector包含要沿x軸顯示的元素?

回答

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-幫助最凌亂的一部分,但一旦你習慣了看plot.defaultaxis,並且par你會開始獲得更好的處理)

+0

完美,就像一個魅力。我想這個「如何瀏覽幫助」仍然是我學習R的最大障礙。謝謝! – 2011-12-28 15:37:09

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)) 

在每種情況下刻度標記是相當有意義的,但如果你想不同的格式,那麼你可以關注@約翰的榜樣,抑制默認軸,然後使用axis.POSIXct,並指定什麼格式你要。

這些示例使用等間隔時間(由於我的懶惰),但對於不等間隔的時間同樣適用。