ggpubr::stat_cor()的label.npc未适配geom_smooth,分面标签位置异常求助
解决分面中stat_cor标签位置偏移问题
原代码里stat_cor用label.y.npc = 'top'时,是按当前分面的数据值域顶部来定位标签,而非绘图面板的顶部,这就导致数据值域较小的分面(比如iris数据集里的virginica),相关系数标签会明显低于其他分面的标签位置。
要解决这个问题,只需把基于数据值域的定位改成基于面板边界的定位,具体修改后的代码如下:
library(ggplot2) library(ggpubr) data('iris') ggplot(data = iris, aes(x = Petal.Length, y = Sepal.Length, color = Species))+ geom_point()+ geom_smooth(method = 'lm')+ facet_wrap('Species', scales = 'free')+ stat_cor(aes(color = NULL), label.x.npc = 'left', label.y = Inf, # 指定标签对齐到面板顶部边界 vjust = 1.1, # 微调标签位置,避免被面板边框遮挡 size = 4, family = 'serif', show.legend = F, p.accuracy = 0.001)
修改说明:
label.y = Inf会把标签锚定到每个分面绘图面板的顶部,不受数据值域范围影响vjust = 1.1让标签向上微调一点,刚好显示在面板内的顶部区域,不会被边框挡住,同时所有分面的标签位置保持统一对齐
内容的提问来源于stack exchange,提问作者Bryce Cook
相关产品推荐
相关产品推荐

