[問題] Highlight a range of X axis in area p

作者: luenchang (luen)   2023-09-09 13:13:50
各位先進看過運動記錄APP Strava上面的圖嗎?舉單車的活動記錄數據來說,速度,爬升都
是以area plot的形式呈現。X軸是距離,Y軸是各種sensor記錄到的數據,如心率,速度,
爬升。
我想做的是將area plot加上highlight。有點類似口頭報告時power point slide的大綱頁
面,只有接下來要報告的部分標題被highlight, 其他部分放灰階。
目前我已經下載了自己的一個活動記錄 .fit 檔,轉成csv檔,再根據heart rate及距離畫
了個line plot. 我用gghighlight()將X軸中的一部分要highlight的畫成紅色,其他不需hi
ghlight的部分畫成灰色,如
https://hackmd.io/_uploads/S182gdFRh.png
現在我想把highlight套用到area plot上面。已畫出的圖
https://hackmd.io/_uploads/r1ANe_tAn.png
紅色部分area有一部分被灰色的圖給重疊,出現了一條斜線。不知道這個重疊的部分能去除
嗎?
我把數據檔案下載點,程式及圖放在 hackmd note
https://hackmd.io/@Chang/adverse-events-gantt-chart
Highlighted line plot在以下標題之下
Highlight a range of X axis in a line plot
需要改進的Highlighted area plot在以下標題之下:
Highlight a range of X axis in an area plot
手機排版,如有不清楚的地方我在推文裡補充說明。
作者: Gjerry   2023-09-09 15:52:00
簡單的方法應該就是把紅灰分開畫灰色在紅色的那些區域補 0 也許可行
作者: hohiyan (海洋)   2023-09-10 04:40:00
作者: luenchang (luen)   2023-09-11 23:10:00
感謝h大的回覆。再請教如何把Y軸限制於60和200之間?我試了+ ylim(60,200)及+ scale_y_continuous(limits = c(60,200)) 圖就消失了。+ylim()用於geom_line()是可行的。還是area plot的Y軸一定從0開始改不了?
作者: andrew43 (討厭有好心推文後刪文者)   2023-09-12 13:45:00
改成 + coord_cartesian(ylim = c(60,200)) 看看
作者: luenchang (luen)   2023-09-12 22:54:00
+ coord_cartesian(ylim = c(60,200)) 也是一樣,產生了個空的圖。
作者: hohiyan (海洋)   2023-09-14 22:58:00
我用 coord_cartesian(ylim=c(60, 200)) 是跑得出來的我把code跟圖更新在原本的連結裡面了
作者: luenchang (luen)   2023-09-15 17:04:00
謝謝a大及h大的回覆。有使用者在Github po文和我一樣的問題,是Windows版本的R 4.1.x 的bug. alpha= 小於1和coord_cartesian() 同時使用,fill color 會消失。https://github.com/tidyverse/ggplot2/issues/4498。我把所有的alpha=拿掉fill color出現了。https://github.com/tidyverse/ggplot2/issues/4498不知道有沒有人用 Windows版R alpha=小於1 和 coord_cartesian()一起用沒問題的?我想試試那個版本的ggplot2
作者: hohiyan (海洋)   2023-09-15 21:42:00
R 4.3.1 & ggplot2 3.4.3 用 alpha = .7 沒問題

Links booklink

Contact Us: admin [ a t ] ucptt.com