首页 > 解决方案 > 如何在geom_text和stat_cor之间的ggplot中进行字体匹配?

问题描述

我在 R 中制作了一个线性回归图,并希望将一些统计输出放在图中。该stat_cor函数允许我添加 R2 和 p 值,但它不允许您添加斜率或斜率误差。我可以添加后两者,但是字体在和geom_text之间是不同的。在我看来,字体看起来更干净,那么我怎样才能让它看起来像字体呢?stat_corgeom_textstat_corgeom_textstat_cor

示例数据集:

library(ggplot2)
library(ggpubr)

beer <- read.csv("http://users.stat.umn.edu/~helwig/notes/MNbeer.csv")

ggplot(data = beer, aes(x = ABV, y = IBU)) +
  stat_smooth(method = 'lm') +
  geom_point() +
  theme_bw() +
  theme(panel.grid = element_blank(),
        text = element_text(size = 14, color = "black"),
        axis.text.x = element_text(size = 14, color = "black"),
        axis.text.y = element_text(size = 14, color = 'black')) +
  stat_cor(aes(label = paste(..rr.label.., ..p.label.., sep = "~`,`~")),
           label.x = 4, size = 4)

这是我得到斜率及其标准误差的地方

model <- lm(IBU~ABV, data = beer)
summary(model)

我将斜率± SE 添加到下面的图中,但是它们是输出和输出geom_text之间的字体差异。stat_corgeom_text

ggplot(data = beer, aes(x = ABV, y = IBU)) +
  stat_smooth(method = 'lm') +
  geom_point() +
  geom_text(x = 4.45 , y = 88,
            label = 'Slope = 19.79 ± 2.67',
            size = 4.5) +
  theme_bw() +
  theme(panel.grid = element_blank(),
        text = element_text(size = 14, color = "black"),
        axis.text.x = element_text(size = 14, color = "black"),
        axis.text.y = element_text(size = 14, color = 'black')) +
  stat_cor(aes(label = paste(..rr.label.., ..p.label.., sep = "~`,`~")),
           label.x = 4, size = 4)

理想图形的 R2、p 值和斜率 ± SE 均采用与 相同的字体stat_cor

标签: rggplot2ggpubr

解决方案


推荐阅读