在 ggplot 中更改 stat_compare_mean() 输出的字体系列

Change font family of stat_compare_mean() output in ggplot

是否可以更改以下ggpboxplot中p值的字体系列?字体系列应为 "Times New Roman"。

使用 theme_bw(base_family = "Times New Roman"),不会改变 p 值。

library(ggpubr) 
library(ggplot2)
data("ToothGrowth")

# Box plot 
p <- ggboxplot(ToothGrowth, x = "supp", y = "len",
      color = "supp", palette = "jco",
      add = "jitter",
      facet.by = "dose", short.panel.labs = FALSE) 

p + stat_compare_means(label = "p.format")
p + theme_bw(base_family = "Times New Roman")

我也尝试过使用普通主题(text = ...)。没用。

# Box plot 
p <- ggboxplot(ToothGrowth, x = "supp", y = "len",
      color = "supp", palette = "jco",
      add = "jitter",
      facet.by = "dose", short.panel.labs = FALSE) 

p + stat_compare_means(label = "p.format")
p + theme(text = element_text(family = "Times New Roman"))

请注意:我从以下网站获取示例: https://rpkgs.datanovia.com/ggpubr/reference/stat_compare_means.html

非常非常感谢!

一切顺利, 艾娜

你很接近,family = 参数直接进入 stat_compare_means()

来自help(stat_compare_means)

Usage
stat_compare_means(mapping = NULL, data = NULL, method = NULL,
  paired = FALSE, method.args = list(), ref.group = NULL,
  comparisons = NULL, hide.ns = FALSE, label.sep = ", ",
  label = NULL, label.x.npc = "left", label.y.npc = "top",
  label.x = NULL, label.y = NULL, tip.length = 0.03,
  bracket.size = 0.3, step.increase = 0, symnum.args = list(),
  geom = "text", position = "identity", na.rm = FALSE,
  show.legend = NA, inherit.aes = TRUE, ...)
<snip>
...   other arguments to pass to geom_text or geom_label.

因此,这段代码应该可以满足您的要求。

 ggboxplot(ToothGrowth, x = "supp", y = "len",
      color = "supp", palette = "jco",
      add = "jitter",
      facet.by = "dose", short.panel.labs = FALSE) +
      stat_compare_means(label = "p.format",family = "Times New Roman") 
      #Use this if on Windows:  stat_compare_means(label = "p.format",family = "TT Times New Roman")