[問題] Color background of a ggplot2 bar plot

看板R_Language作者 (luen)時間3月前 (2023/11/25 10:53), 編輯推噓1(108)
留言9則, 2人參與, 3月前最新討論串1/1
小弟的數據是自已Strava帳號上面下載的活動記錄。我想要把2023年在各種活動中所花的 時間畫個bar plot。2023有在3個不同的時區,所以也想把時區在圖上利用背景色呈現出 來。目前已經畫出bar plot,遇到的問題是我所用的 geom_rect()並沒有把背景上色,好 像只有在背景色區塊xmin, xmax各插入白色的bar. 和我參考stack overflow上有用 geom_rect() 改變背景色的圖都不一樣。不知道是geom_rect不適用於bar plot,還是我 的寫法有錯,或是有更簡潔的其他的function可以改變背景色。 geom_rect()需要指定區塊在x, y軸上的坐標,我的原始數據裡並沒有這個,為了使用 geom_rect(), 我手動產生 time.zones這個data.frame把每個時區的日期範圍寫死。如果 最後是用geom_rect()來改變背景色,也希望能用比較好的方式產生time.zones. 因為時 區Australia/Brisbane重複了3次,用 group_by()來拿出開始及結束日期的話,出來的數 據會去除掉重複的。這部分我也不知道該如何做。 我把畫出來的圖 (plot generated) ![color-date-ranges-by-timezones[1]have](https://hackmd.io/_uploads/ryO8HRR4p.jpg) 想要的圖 (plot desired) ![color-date-ranges-by-timezones[2]want](https://hackmd.io/_uploads/rJVDBRCEp.jpg) 數據在Google drive 上的連結,及我的程式放在hackmd上 https://hackmd.io/@Chang/adverse-events-gantt-chart 感謝各位先進的指點 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.30.65.63 (澳大利亞) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1700880804.A.300.html

11/27 10:44, 3月前 , 1F
原本的問題出在於有兩個fill= 要修改,但是只用了1個s
11/27 10:44, 1F

11/27 10:44, 3月前 , 2F
cale_fill_manual(). 加了ggnewscale::new_scale_fill
11/27 10:44, 2F

11/27 10:44, 3月前 , 3F
()及第二個scale_fill_manual()後背景色有出來了。現
11/27 10:44, 3F

11/27 10:44, 3月前 , 4F
在我的問題變成如何移除margin, 並且讓x軸月份結束於2
11/27 10:44, 4F

11/27 10:44, 3月前 , 5F
023 Dec, 第二個x軸結束於52.
11/27 10:44, 5F

11/28 00:27, 3月前 , 6F
sec.axis的部份用sec_axis而不是dup_axis,然後:
11/28 00:27, 6F

11/28 00:30, 3月前 , 7F

11/28 00:30, 3月前 , 8F
土法鍊鋼,也許有更有效的解法
11/28 00:30, 8F

11/28 00:33, 3月前 , 9F
文章代碼(AID): #1bOM6aC0 (R_Language)
文章代碼(AID): #1bOM6aC0 (R_Language)