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

如何在ggcorplot绘制的相关系数图中更改字体样式?

如何修改ggcorrplot中相关系数的字体样式?

ggcorrplot本身没有直接设置相关系数字体的参数,但可以通过ggplot的图层修改或主题设置来实现,以下是两种常见场景的解决方案:

一、全局修改所有相关系数的字体

如果要把所有相关系数的字体统一改成Times New Roman,可以通过以下步骤:

  1. 先安装并加载extrafont包(用于导入系统字体):
install.packages("extrafont")
library(extrafont)
# 首次运行需导入系统字体,后续无需重复执行
font_import()
loadfonts()
  1. 生成基础图后,通过修改ggplot主题或直接调整geom_text图层来设置字体:
library(ggcorrplot)
data(mtcars)
corr <- round(cor(mtcars), 1)
p.mat <- cor_pmat(mtcars)

# 生成基础相关系数图
p <- ggcorrplot(corr,
           hc.order = TRUE,
           type = "lower",
           lab = TRUE)

# 方法1:通过theme全局设置字体
p + theme(text = element_text(family = "Times New Roman"))

# 方法2:直接修改geom_text图层的字体参数(需确认图层索引,通常geom_text是第2层)
p$layers[[2]]$aes_params$family <- "Times New Roman"
print(p)

二、单独修改特定相关系数的字体

如果只需要修改某一对变量(比如mpg和drat的0.7)的字体,可以提取目标数据后手动添加新的文本图层覆盖原有内容:

# 提取绘图数据,找到目标系数对应的行
plot_data <- p$data
# 匹配mpg与drat的相关系数0.7,需根据实际数据调整var1和var2的顺序
target_coeff <- plot_data[plot_data$label == "0.7" & plot_data$var1 == "mpg" & plot_data$var2 == "drat", ]

# 添加新的geom_text覆盖原有文本,设置指定字体
p + geom_text(data = target_coeff,
              aes(x = x, y = y, label = label),
              family = "Times New Roman",
              size = 5,  # 匹配原有字体大小
              color = "black")  # 匹配原有字体颜色

注意:运行前需确认系统中已安装Times New Roman字体,若使用其他字体,替换family参数对应的字体名称即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:55:15