簡體   English   中英

將時間從原點開始繪制為小時

[英]plot chron times as hours from origin

我有一組計時時間,這是兩個時間點之間的差。 這些值的范圍從略微負數到大於1。Chron將這些值顯示為幾天的時間,因為某些值大於1。

當我在ggplot中繪制這些值時,我嘗試使用scale_y_chron()正確注釋y軸,但是scale_y_chron()似乎僅繪制24小時內的時間。 從00:00開始有什么方法可以將軸注釋為HH:MM嗎?

# data:

time_to <- c(0.19305556,0.12083333,0.58402778,0.32986111,0.40486111,
             0.77083333,0.18263889,0.23472222,0.10138889,0.11666667,
             0.47222222,0.14166667,0.15694444,0.24166667,0.16666667,
             0.29166667,0.28194444,0.16875000,0.42777778,0.88750000,
             0.17916667,0.05763889,0.53263889,0.11666667,0.22916667,
             0.75069444,0.98680556,1.29930556,0.78263889,0.73611111,
             0.73958333,1.22708333,0.41319444,0.98402778,1.22500000,
             0.33194444,0.95972222,0.18333333,0.11458333,0.86805556)

# plot:

require(chron)
require(ggplot2)
qplot(y=time_to)

在此處輸入圖片說明

理想情況下,y軸應說明從00:00開始的總小時數,但如果時差大於24小時,則默認為天。

time_to只是數字的向量,因此沒有理由認為軸會被數字以外的任何東西標記。 如果這些數字代表兩個日期之間的時差,並且我們希望HH:MM格式,即使超過24小時也要使用自定義標簽。 利用這樣的事實,即一天中的一天為1,因此一小時為1/24:

library(ggplot2)

hrs <- seq(0, 30, 5)  # 0, 5, 10, ..., 30
qplot(y = time_to) + 
   scale_y_continuous(breaks = hrs/24, labels = sprintf("%02d:00", hrs))

截圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM