Contour plot,了解一下

前段时间,有位丁香园站友在版块内求助这样一张图(见图1和图2)的绘制方法。我看到后,感觉和曾经做过的分布滞后非线性模型(常用于气象与疾病发病率的关系研究)中的Contour plot(见图3)有点像,但又有区别。复现文章中的高级统计图,是我的一大乐趣。于是乎,经过一番努力,就有了今天的这篇推文。

图 1

图 2

图 3
在正式上“菜”之前,先简单介绍一下Contour plot这道菜。Contour plot,中文名:等高线图、等值线图,是一个2.5D 交互图。就图1.1(图1.2)而言,Contour plot表示的是肿瘤大小和肿瘤直径这两个变量预测的患者3年生存率:随着肿瘤的增大和个数的增多,肿瘤患者的3年生存率在逐渐降低。图1.1和图1.2对应的文章放在文末,大家有兴趣可以下载了看一看。
在做科研的各位,想必都观察到了这样一个现象:一张既有内容又漂亮的统计图会让文章增色不少。既如此,就请一起学习进步。下面,言归正传,上硬菜!
##-- 加载R packages ---##
library(survival)
library(rms)
library(pec)
library(plotly)
##---载入示例数据---##
data("lung") #R自带的肺癌数据
lung<-lung[-206,] # 剔除个别缺失值
##-- 建立Cox模型,并预测生存概率---##
##建立Cox模型
Cox <- cph(Surv(time, status) ~ pat.karno + ph.karno, data = lung, surv = T)
t <- c(365,730) #设定随访时间
##预测生存概率
survprob <-****(Cox, newdata = lung, times = t)
##---提取变量,建立新的数据框---##
data<-as.data.frame(cbind(lung$pat.karno, lung$ph.karno, survprob))
names(data)[c(1:4)]<-c("size", "number", "Prob_365", "Prob_730")
## 由于没有肿瘤大小和数量,这里假定"pat.karno"和"ph.karno"对应的是肿瘤大小和数量

图 4
##--- 绘制Contour plot---##
p<-plot(********) ##
layout(p, title="2-Year survival probability")

图 5
基本完工,上图5便是最终得到的Contour plot。不知道大家还记不记得墨点在前几期介绍的网页版动态列线图(Dynamic nomogram),2.5D contour plot同样也可以上传制作网页。制作网页版2.5D Contour plot的方法很简单,请看右上角的“Publish”。点击Publish,选择Rpubs进入注册;注册完成后,重新点击Publish,填写你要上传的图片信息和图片名称,点击Continue!(https://rpubs.com/hamody/Contourplot)

图 6

图 7

图 8

图 9
菜齐了,各位请慢用!如果喜欢,还请点个赞,关注一下吧!尊重数据,助力科研。
最后编辑于 2022-08-24 · 浏览 3384