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

本文首发于“生信补给站”微信公众号,https://mp.weixin.qq.com/s/2W1W-8JKTM4S4nml3VF51w

更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号,给您干货。

上一篇简单的介绍了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)

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

参考链接:https://www.r-bloggers.com/forest-plot-with-horizontal-bands/

更多:

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-富集分析

【觉得不错,右下角点个“在看”,期待您的转发,谢谢!】

原文地址:https://www.cnblogs.com/Mao1518202/p/11674725.html

时间: 2024-09-30 15:00:41

R-forestplot包| HR结果绘制森林图的相关文章

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

本文首发于“生信补给站”微信公众号,https://mp.weixin.qq.com/s/2W1W-8JKTM4S4nml3VF51w 更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号,给您干货. Meta分析的结果使用森林图进行可视化展示很常见,其实COX生存分析也能用森林图展示. 之前分享过绘制KM曲线R|生存分析(1),诺莫图展示COX结果Nomogram(诺莫图) | Logistic.Cox生存分析结果可视化,本文将简单的介绍如何使用R-survminer包绘制Cox生

用R包中heatmap画热图

一:导入R包及需要画热图的数据 library(pheatmap) data<- read.table("F:/R练习/R测试数据/heatmapdata.txt",head = T,row.names=1,sep="\t") 二:画图 1)pheatmap(data)#默认参数 2)pheatmap(data,clustering_distance_rows = "correlation")#聚类线长度优化 3)pheatmap(data

在LaTeX中使用tikz宏包及其扩展包共同绘制UML图

LaTeX宏包tikz的绘图功能很强,完全可以绘制UML的各种图形,并且在tikz的基础上扩展出不少这方面的宏包.前面我介绍过宏包tikz-uml,这个宏包功能不错,只是外观上略微有些不足.所以我现在还是立足于tikz的基础功能,结合tikz-uml宏包一起绘制UML图. 下面直接给出示例代码.效果图与说明. 操作系统:Ubuntu 16.04 64位桌面版LaTeX工具:TeXstudio 2.10.8 示例一 % 51CTO陆巍的博客 \documentclass[oneside, Auto

R绘制韦恩图 | Venn图

解决方案有好几种: 网页版,无脑绘图,就是麻烦,没有写代码方便 极简版,gplots::venn 文艺版,venneuler,不好安装rJava,参见Y叔 酷炫版,VennDiagram 1. 网页版的就不说了,非常简单,直接输入数据就行: 2. 极简版 options(repr.plot.width=4, repr.plot.height=5) vp <- gplots::venn(list(Nup=names(moduleListN_DEG[["up"]]), Ndown=n

绘制热图

具体热图参数见此网站:https://www.jianshu.com/p/1c55ea64ff3f 数据格式:基因芯片信息,GSM样本号,Case为探针编码 rm(list = ls()) getwd() #row.names=1 指定第一列为行名 a=read.csv("for_heatmap.csv",row.names = 1) # 输入必须为矩阵 a<-as.matrix(a) heatmap(a) # 使用pheatmap来绘制热图 install.packages(&

Matplotlib绘制折线图

折线图(plot) 基本使用 import matplotlib.pyplot as plt  # 导包 plt.figure()  # 1)创建画布(容器层) plt.plot([1, 2, 3, 4, 5, 6 ,7], [17, 17, 18, 15, 11, 11, 13])  # 2)绘制折线图(图像层) plt.show()  # 3)显示图像 设置画布属性与图片保存 plt.figure(figsize=(), dpi=)  # 返回fig对象 figsize:指定图的长宽 dpi

使用andbase开发框架实现绘制折线图

在Android中,当有绘制折线图的需求时,大多数人使用的AChartEngine,来进行折线图的绘制.AChartEngine图表引擎确实可以实现折线图的功能,除此之外,我们还可以使用andbase开发框架里面的图表模块,实现图标的绘制.前面文章介绍了使用andbase开发框架实现侧滑栏效果,今天,我们学习如何实现折线的绘制. 首先,我们还是看一下效果图 我们模拟的是一家公司12个月中,两项不同业务的销售额变化,可以看到,效果还是非常不错的. 下面,我们开始介绍如何使用andbase实现这个效

Morris.js和flot绘制折线图的比较

[文章摘要] 最近用开源的AdminLTE做框架感觉效果特别好,其针对图表库Morris.js和flot都提供了不错的支持,也都提供了这两者的例子.不过Morris.js是基于Raphael.js来的,也就是其使用SVG和VML来绘制图形,而flot则是使用Canvas进行绘制,在绘制效率和浏览器兼容性等方面会有出入,同时两者需要的数据格式也不相同.本文中对两者的使用和性能进行了比较. [文章索引] Morris.js的使用 flot的使用 性能比较 [一.Morris.js的使用] Morri

Android 绘制动态图

最近准备技能大赛,需要将从传感器中读出的数据在移动客户端以图的形式绘制出来,因为平时很少绘图,于是各种查资料,算是勉强做出来了. 以下是大赛理论效果图(左)和实际效果图(右),真的是理想很丰满,现实很骨感啊! 制作的整体思路: 创建一个继承与View类自定义类 自定义类覆盖其中的onDraw()方法 在MainActivity中invalidate()方法来调用onDraw()方法来进行图形的重绘. 绘制一个基本表: (注意:代码中使用了变量) 1.绘制矩形 Paint paint = new