同一PDF中合并多个qgraph与bootnet绘图的布局适配问题
par(mfrow)、layout()属于R基础绘图系统的布局控制接口,仅对qgraph输出的base类型网络绘图生效;而bootnet包的中心性指标图、中心性稳定性图默认基于ggplot2渲染,不受base绘图参数控制,因此会出现全屏覆盖、无法适配预设布局的问题。
多图拼合适配方案
用ggplot生态的拼合工具统一管理所有图的布局,操作步骤如下:
- 安装加载依赖包:
ggplotify用于将base类型的qgraph图转为ggplot对象,patchwork用于多图布局排版
install.packages(c("ggplotify", "patchwork")) library(ggplotify) library(patchwork) library(qgraph) library(bootnet)
- 分别生成所有绘图对象并统一格式
# 1. 将qgraph的base绘图转为ggplot对象,~后替换为你原本的qgraph绘图代码 p_network <- as.ggplot(~qgraph(cor_data, layout = "spring", 其他自定义参数)) # 2. 生成中心性指标图 p_centrality <- centralityPlot(boot_result) # 3. 生成中心性稳定性图 p_stability <- bootCentralityPlot(boot_result)
- 按你需要的布局排版(第一行跨2列放网络图,第二行左右放中心性、稳定性图)
combined_plot <- p_network + p_centrality + p_stability + plot_layout( design = " 11 23 ", nrow = 2, ncol = 2 )
- 导出为PDF
# 可自行调整width、height参数控制整体画布尺寸 ggsave("combined_network_plot.pdf", combined_plot, width = 14, height = 10, dpi = 300)
横轴刻度旋转方案
分两种绘图类型调整:
- 基础绘图类qgraph图:绘图时添加
las=2参数即可让横轴刻度垂直显示
qgraph(cor_data, las = 2, 其他自定义参数)
- ggplot类中心性/稳定性图:追加
theme()参数修改轴文本角度
# 中心性指标图调整示例 p_centrality <- p_centrality + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) # 稳定性图调整示例 p_stability <- p_stability + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))
内容的提问来源于stack exchange,提问作者fantasticmrfox
相关产品推荐
相关产品推荐

