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

线性对数ggplot中如何让Pearson相关系数不受对数刻度影响正常计算

解决方案

ggpubr::stat_cor()默认会继承全局图层的映射,使用坐标轴转换后的值计算相关系数,因此添加对数刻度后会得到不符合预期的结果。你可以通过为stat_cor()单独指定原始变量映射、关闭全局映射继承的方式实现需求。

修改后的可运行代码如下:

library(tidyverse)
library(ggpubr)

df <- tibble(A = c(1:10), B = c(1:10))

ggplot(data = df, aes(x = A, y = B)) +
  geom_point() +
  # 单独指定原始变量映射,关闭全局继承,使用原始值计算相关系数
  stat_cor(aes(x = A, y = B, label = ..r.label..), 
           method = "pearson",
           inherit.aes = FALSE) +
  scale_x_continuous(trans = "log10") 

运行上述代码后,x轴会保留对数刻度展示,同时stat_cor()计算得到的Pearson相关系数为预期的R=1。该方法不需要提前单独计算相关系数,完全在绘图环节完成逻辑,适配批量探索的需求。

内容的提问来源于stack exchange,提问作者jsgraydon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:36:11