R-forestplot包| HR结果绘制森林图

简介: R-forestplot包| HR结果绘制森林图

本文首发于“生信补给站”公众号  https://mp.weixin.qq.com/s/OqgsuVXMx_l4IKv6h44Hsg


上一篇简单的介绍了COX生存分析结果绘制森林图Forest plot(森林图) | Cox生存分析可视化,本文将介绍根据数据集合的基本信息以及点估计值(置信区间区间)的结果直接绘制森林图的方法。

其中点估计值(置信区间)的结果可以是COX也可以是logistic回归等其他方法的结果,适用范围更广。

数据准备

#载入R包
library(forestplot)
#数据来源:https://www.r-bloggers.com/forest-plot-with-horizontal-bands/
data <- read.csv("ForestPlotData.csv", stringsAsFactors=FALSE)
#查看数据
head(data)


绘制森林图

2.1 简单森林图

对数据进行部分修改,方便行名和列名字输出

## 构建tabletext,更改列名称,展示更多信息
np <- ifelse(!is.na(data$Count), paste(data$Count," (",data$Percent,")",sep=""), NA)
## The rest of the columns in the table.
tabletext <- cbind(c("Subgroup","\n",data$Variable),
                   c("No. of Patients (%)","\n",np),
                   c("4-Yr Cum. Event Rate\n PCI","\n",data$PCI.Group),
                   c("4-Yr Cum. Event Rate\n Medical Therapy","\n",data$Medical.Therapy.Group),
                   c("P Value","\n",data$P.Value))
##绘制森林图
forestplot(labeltext=tabletext, graph.pos=3,
         mean=c(NA,NA,data$Point.Estimate),
         lower=c(NA,NA,data$Low), upper=c(NA,NA,data$High),
  boxsize=0.5)

如上图所示基本信息OK了,但是可以在以下几个方面进行优化:

  • 添加线条,区分Subgroup
  • 更改箱线图的宽度,颜色和大小
  • 更改字体大小,更易区分
  • 添加标题和横坐标轴标示

2.2 优化森林图

## 定义亚组,方便后面线条区分
subgps <- c(4,5,8,9,12,13,16,17,20,21,24,25,28,29,32,33)
data$Variable[subgps] <- paste("  ",data$Variable[subgps])
forestplot(labeltext=tabletext,
         graph.pos=3, #为Pvalue箱线图所在的位置
         mean=c(NA,NA,data$Point.Estimate),
         lower=c(NA,NA,data$Low), upper=c(NA,NA,data$High),
         #定义标题
          title="Hazard Ratio Plot",
         ##定义x轴
         xlab="    <---PCI Better---   ---Medical Therapy Better--->",
         ##根据亚组的位置,设置线型,宽度造成“区块感”
         hrzl_lines=list("3" = gpar(lwd=1, col="#99999922"),
                         "7" = gpar(lwd=60, lineend="butt", columns=c(2:6), col="#99999922"),
                         "15" = gpar(lwd=60, lineend="butt", columns=c(2:6), col="#99999922"),
                         "23" = gpar(lwd=60, lineend="butt", columns=c(2:6), col="#99999922"),
                         "31" = gpar(lwd=60, lineend="butt", columns=c(2:6), col="#99999922")),
         #fpTxtGp函数中的cex参数设置各个组件的大小
          txt_gp=fpTxtGp(label=gpar(cex=1.25),
                         ticks=gpar(cex=1.1),
                         xlab=gpar(cex = 1.2),
                         title=gpar(cex = 1.2)),
         ##fpColors函数设置颜色
         col=fpColors(box="#1c61b6", lines="#1c61b6", zero = "gray50"),
         #箱线图中基准线的位置
         zero=1,
         cex=0.9, lineheight = "auto",
         colgap=unit(8,"mm"),
         #箱子大小,线的宽度
         lwd.ci=2, boxsize=0.5,
         #箱线图两端添加小竖线,高度
         ci.vertices=TRUE, ci.vertices.height = 0.4)


如此即绘制完成了,颜色,大小,间隔等需要根据实际情况进行调整。


更多:

R|生存分析(1):生存分析介绍以及绘制KM曲线

Nomogram(诺莫图) | Logistic、Cox生存分析结果可视化

Forest plot(森林图) | Cox生存分析可视化

maftools|TCGA肿瘤突变数据的汇总,分析和可视化

maftools | 从头开始绘制发表级oncoplot(瀑布图)

ggalluvial|炫酷桑基图(Sankey),你也可以秀

ggplot2|详解八大基本绘图要素

ggplot2|ggpubr进行“paper”组图合并

pheatmap|暴雨暂歇,“热图”来袭!!!

ggplot2-plotly|让你的火山图“活”过来

ggplot2| 绘制KEGG气泡图

ggplot2|绘制GO富集柱形图

绘图系列|R-corrplot相关图

绘图系列|R-VennDiagram包绘制韦恩图

R|clusterProfiler-富集分析

相关文章
|
8月前
如何绘制PAD图和N-S图(详细步骤)
如何绘制PAD图和N-S图(详细步骤)
761 0
|
8月前
|
并行计算 数据可视化 算法
CMplot & rMVP | 全基因组曼哈顿图和QQ图轻松可视化!
`CMplot`和`rMVP`是R语言中的两个包,用于全基因组关联分析(GWAS)的数据可视化。`CMplot`专注于曼哈顿图和QQ图的绘制,支持多种图表类型,如常见的SNP密度图、环状曼哈顿图、矩阵图、单条染色体图和多重曼哈顿图等。`rMVP`不仅包含了`CMplot`的功能,还支持更复杂的GWAS方法,如线性/混合线性模型和基因组选择算法,优化了内存管理和计算效率,特别适合大规模数据集。此外,它还提供PCA图和柱状图。两者都提供了丰富的参数定制图表。
454 1
CMplot & rMVP | 全基因组曼哈顿图和QQ图轻松可视化!
|
8月前
|
存储 数据可视化 关系型数据库
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
|
8月前
|
Serverless
统计问题|绘制任意分布的 QQ 图
统计问题|绘制任意分布的 QQ 图
171 1
|
编解码 图形学
[学习][笔记] qt5 从入门到入坟:<11>绘制设备
[学习][笔记] qt5 从入门到入坟:<11>绘制设备
|
数据采集 机器学习/深度学习 数据可视化
掌握ggstats包绘制森林图,让你的数据更有说服力
通常情况下,森林图中是垂直放置的一条线,线的左侧为比较指标的最小值,右侧为最大值。而灰色的长方体就代表置信区间的范围,以及平均值所在的位置,长方体越长代表数据的不确定性越大,也就意味着置信区间范围越广。通过比较不同组别的森林图,就可以看到差异显著性的程度是大还是小。
341 0
|
算法 数据中心
离散数学_十章-图 ( 1 ):图的相关定义
离散数学_十章-图 ( 1 ):图的相关定义
206 0
分级KEGG富集pathway图绘制
最近在基迪奥平台上看到了这张KEGG富集信息图,刚好手头有批现成的转录组数据,刚好绘制一下给富集图换换风格~~
321 0
|
数据可视化 数据挖掘 Python
跟着Molecular Plant学作图:R语言circlize包画圈图展示基因组的一些特征补充添加图例
跟着Molecular Plant学作图:R语言circlize包画圈图展示基因组的一些特征补充添加图例
|
前端开发
前端知识学习案例18vs code-选择方形区域
前端知识学习案例18vs code-选择方形区域
75 0
前端知识学习案例18vs code-选择方形区域