簡體   English   中英

如何更改 x 軸上的時間順序?

[英]How to change time-order on x-axis?

我對此特定代碼有疑問:

ggplot(MAGS)+
  geom_col(aes(x = Photo.time@hour + Photo.time@minute/60, y = Number.of.Animals), lwd = 1) + ylab("total amount") +
  scale_x_continuous(breaks = seq(0,24,4), name = "time", labels = c( "0:00", "4:00", "8:00", "12:00", "16:00", "20:00", "23:59")) +
  theme_bw() + theme_classic() 

scale_y_continuous(breaks = seq(0,10,2), name = "total amount", labels = c( "o","2","4","6","8","10"))

使用此代碼,我創建了附加的 plot。這個 plot 沒問題,但我想如果我更改 x 軸,使其從 12:00pm 開始,中間為 00:00am,並以 11:59am 結束,它看起來會更好。 有點像附件中的 plot 但翻轉了。 數據集來自夜間活動的動物,在午夜左右活動頻繁,因此最好將 00:00 置於 x 軸的中心。 我嘗試了幾件事,但最后總是一團糟。 我不知道我的錯誤在哪里。

非常感謝您的幫助:)

我嘗試了幾種方法來重新排列 x 軸,但找不到問題所在。

在此處輸入圖像描述

我建議制作一個按您想要的方式排序的輔助列——在這種情況下,我在一天的前 12 小時中添加了 24 小時,以使 0:12 出現在 24:36 小時,然后進行調整相應的標簽。

df1 <- data.frame(x = seq(0, 24 - 1/60, 1/60), y = 1:1440)
df1$x_order = df1$x + ifelse(df1$x < 12, 24, 0)

ggplot(df1, aes(x_order, y)) +
  geom_col() +
  scale_x_continuous(breaks = 12 + seq(0,24,4), name = "time", 
                     labels = c("12:00", "16:00", "20:00", "00:00am", "4:00", "8:00", "12:00")) 

在此處輸入圖像描述

暫無
暫無

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

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