ggplot2如何仅为facet_wrap的单个分面添加annotation_ticks刻度
解决方法
annotation_logticks默认会应用到所有分面,要仅在指定分面显示,只需给该图层单独传入仅包含目标分面取值的数据集即可:
假设你用来做facet_wrap的分组变量名为year,修改后的代码如下:
annotation_logticks(base = 10, sides = "l", outside = TRUE, long = unit(0.1, "cm"), data = data.frame(year = 2020))
如果你的代码用了tidyverse相关语法,也可以用lambda表达式过滤原数据集:
annotation_logticks(base = 10, sides = "l", outside = TRUE, long = unit(0.1, "cm"), data = ~ subset(.x, year == 2020))
补充说明
这个规则适用于ggplot2的所有图层,只要给特定图层传入仅包含你需要展示的分面对应分组值的数据集,该图层就只会在匹配的分面中渲染。如果使用多变量分面,只要在传入的data参数里把所有分组变量的对应取值都标注完整即可。
内容的提问来源于stack exchange,提问作者Hannah
相关产品推荐
相关产品推荐

