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

如何调整ggscatter相关图中自动生成的R和p值字体大小?

调整ggscatter相关图中R值与p值的字体大小

问题说明

使用ggscatter绘制相关图时,尝试用cex参数调整自动生成的Pearson相关系数(R)和p值的字体大小,但该参数无效,需可行的调整方案。

用户原始脚本:

cpsbs <- read_csv("cpsbs.csv")
View(cpsbs)

psbs600 <- ggscatter(cpsbs, x = "npq600", y = "rd", 
          add = "reg.line", conf.int = TRUE, 
          cor.coef = TRUE, cor.method = "pearson",
          xlab = "Max NPQ (600s)", ylab = "PsbS relative density")+ theme(text = element_text(size = 18)) 

对应数据框:

data.frame(cpsbs)
  id  gen line   npq600  npq900        rd    delcq
1  1 PsbS L1.1 3.053330 0.19666 1.2211420 4.862588
2  2 PsbS L1.2 3.133333 0.17000 1.5918041 5.470889
3  3 PsbS L1.3 2.756667 0.17000 2.1668718 4.773088
4  4 PsbS L1.4 3.160000 0.21000 2.6198157 3.809744
5  5 PsbS L1.5 3.306667 0.20700 1.5571007 4.169890
6  6 PsbS L1.6 0.480000 0.33000 0.0000000 0.000000
7  7 PsbS L1.7 2.960000 0.20000 1.0520551 4.485594
8  8 PsbS L1.8 2.946667 0.21000 0.4648043 3.900248
9  9 PsbS L1.9 2.986667 0.18000 1.9454836 3.782560

解决方案

ggscatter的cor.coef参数本质调用ggpubr::stat_cor()函数,无法直接通过cex调整字体,可采用以下两种方法:

方法1:通过cor.coef.args传递字体大小参数

在ggscatter()中添加cor.coef.args参数,直接指定size值控制R和p值的字体大小,这是最直接的方式:

修改后的脚本:

cpsbs <- read_csv("cpsbs.csv")

psbs600 <- ggscatter(cpsbs, x = "npq600", y = "rd", 
          add = "reg.line", conf.int = TRUE, 
          cor.coef = TRUE, cor.method = "pearson",
          cor.coef.args = list(size = 12),  # 按需调整字体大小
          xlab = "Max NPQ (600s)", ylab = "PsbS relative density") + 
          theme(text = element_text(size = 18)) 

方法2:通过theme()局部调整相关系数文本

若需单独调整相关系数文本而不影响其他元素,可针对stat_cor生成的文本对象设置:

psbs600 + theme(
  text = element_text(size = 18),
  # 单独指定相关系数文本大小
  plot.caption = element_text(size = 12)
)

注:方法1更精准,因为cor.coef.args直接将参数传递给生成相关系数的stat_cor函数,不会干扰其他文本元素的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:20:41