You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 00:06:00