[问题] 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