ggplot2中stat_cor函数:如何将R值与p值分两行显示
解决ggplot2 stat_cor分两行显示R值与p值的问题
当然可以实现分两行展示的效果!其实只需要给stat_cor()函数调整一个参数就搞定了,下面是具体方法和示例:
核心方法:修改label.sep参数
stat_cor()默认用", "(逗号加空格)分隔R值和p值,我们只需要把这个分隔符换成换行符"\n",就能让两个数值分两行显示。
完整代码示例
这里用经典的mtcars数据集做演示:
library(ggplot2) library(ggpubr) # stat_cor属于ggpubr包,需要先加载它 # 绘制散点图+线性拟合线,同时添加分两行的相关性标注 ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point(color = "#2E86AB") + geom_smooth(method = "lm", se = FALSE, color = "#F24C4E") + stat_cor(label.sep = "\n") # 关键参数:用换行符分隔标签内容
进阶自定义(可选)
如果需要调整标注的细节,比如小数位数、标签位置、甚至R值的显示名称,可以额外添加参数:
ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point(color = "#2E86AB") + geom_smooth(method = "lm", se = FALSE, color = "#F24C4E") + stat_cor( label.sep = "\n", cor.coef.name = "Pearson's r", # 把默认的R改成Pearson相关系数的全称 digits = 3, # 设置相关系数和p值的小数位数 label.x = 4, # 手动调整标签的x轴位置 label.y = 30 # 手动调整标签的y轴位置 )
这样你就能得到完全符合需求的、分两行显示的相关性标注啦!
内容的提问来源于stack exchange,提问作者user2300940
相关产品推荐
相关产品推荐

