如何修改ggpairs绘图的字体为Times New Roman并调整列内文本大小
R ggpairs图字体及文本大小调整方案
核心问题原因
theme_bw()为完整主题模板,会覆盖其之前设置的所有theme参数,原注释的主题配置放在theme_bw()之前,就算取消注释也不会生效- ggpairs是多子图拼接的封装图形,内部子图的文本(如下三角的数值、顶部列名)无法仅通过普通ggplot2全局主题配置修改,需要在ggpairs的图层参数中单独调整
修改后完整代码
library(ggplot2) library(tidyr) library(GGally) # 可根据系统调整字体名:Windows默认是"Times New Roman",macOS报错可尝试替换为"Times" target_font <- "Times New Roman" ggpairs( data = Food, mapping = aes(color = "darkorange"), columns = 2:4, upper = "blank", diag = "blank", axisLabels = "none", # 调整子图内部文本大小,根据实际子图类型调整即可 # 如下三角为散点图就用points,为相关性系数就用cor,size按需放大 lower = list( continuous = wrap("points", size = 2), # 若显示相关性系数,替换上面的配置为:continuous = wrap("cor", size = 5) combo = wrap("facetdensity", text_size = 14) ) ) + theme_bw() + scale_color_manual(values = "darkorange") + theme( # 全局统一设置所有文本的字体 text = element_text(family = target_font, size = 12), # 调整顶部列名文本大小 strip.text = element_text(size = 14, family = target_font), # 调整坐标轴文本大小 axis.text = element_text(size = 11, family = target_font), # 调整标题对齐和大小 plot.title = element_text(hjust = 0.5, size = 16, family = target_font), # 调整底部注释文本大小 plot.caption = element_text(size = 10, family = target_font) ) + labs(caption = "Källa: Coop", title = "Sambandet mellan olika produkter")
注意事项
- 如果运行时报字体找不到的错误,Windows可安装
extrafont包,运行extrafont::font_import()导入系统字体,再运行extrafont::loadfonts(device = "win")激活后即可正常调用 - 所有
size参数均可根据需求调整数值,数值越大对应文本越大
内容的提问来源于stack exchange,提问作者flowingwhale
相关产品推荐
相关产品推荐

