2013-02-07 22 views
1

我想繪製1周時間序列中每小時的圖形。 X軸應該是這樣的:如何在繪製圖形時使用xlim在R中的X軸上設置不同的索引?

0 1 2 3 4 .....23 0 1 2 3 4....23 0 1 2 3 ....23............ 0 1 2 3 ...23 
---Monday----   ------Tuesday---- ----Wedneday----.............-----Sunday-----

我不知道如何設置了XLIM因爲我需要x軸的1周每個小時的表示。共有168個點(24 * 7 = 168)。

+1

你的數據是什麼形式? – mnel

+0

數據的數值類似於:對於星期一00:00 hr值爲12344,01:00hr的值爲234535 .....類似地,一週中的每一天。希望我回答了你。如果不讓我知道,我會詳細闡述它。 – Saurabh

+0

幫助我們在這裏。爲什麼這些值要相距一個小時? 234535-12344 = 222191 –

回答

0

不是你正在尋找的東西,但我對同樣問題的解決方案是使用ggplot2 ...並在星期幾之前進行了重疊繪圖 - 這表明我週六和週日是不同的,但是其他日子一週的行爲非常相似。

# some random data... 
adf <- data.frame(day.of.week=rep(c('Mon','Tue','Wed','Thu','Fri','Sat','Sun'), 24), 
     hour.of.day=rep(1:24, 7), y.to.be.plotted=runif(168)) 
qplot(hour.of.day, y.to.be.plotted, data=adf, colour=day.of.week, geom='line') 
library(ggplot2) 
qplot(as.integer(hour.of.day), y.to.be.plotted, data=my.data, 
     colour=day.of.week, geom='line') 
+0

非常感謝...我會通過你的過程,讓你知道。 – Saurabh

2

如果有168個點,只需將其設置爲xlim=c(0,168),抑制軸並單獨標記,例如,

plot(...,xlim=c(0,168),xaxt="n") 
axis(1,at=c(1:168),rep(1:24,7)) 

x軸可能會有點滿,所以也許你只想每隔6小時註釋一次。然後以時間點匹配的方式對數據進行重新編碼,如「開始後的小時數」等。

+0

非常感謝你....這不是我需要的確切方式,但它以某種方式工作。我想我現在可以通過給定你的上述參考文件進行一些修改,我會更新我的解決方案一次我會解決它。再次感謝你:) – Saurabh

相關問題