免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

手把手教你繪制最基礎的列線圖

 生信修煉手冊 2022-06-08 發(fā)布于廣東

在之前的文章中,我們介紹了列線圖的含義和構建方法,本文重點介紹下繪制列線圖的代碼,經(jīng)典的列線圖如下所示

當我們構建好一個預后模型之后,可以通過列線圖來可視化其公式,最常用的繪圖方法是通過rms這個R包,以pbc這個生存分析的數(shù)據(jù)為例,展示下其基本用法

> library(rms)> pbc <- pbc[pbc$status %in% c(0, 1), ]> head(pbc)   id time status trt      age sex ascites hepato spiders edema bili chol2   2 4500      0   1 56.44627   f       0      1       1   0.0  1.1  3025   5 1504      1   2 38.10541   f       0      1       1   0.0  3.4  2797   7 1832      0   2 55.53457   f       0      1       0   0.0  1.0  32213 13 3577      0   2 45.68925   f       0      0       0   0.0  0.7  28116 16 3672      0   2 40.44353   f       0      0       0   0.0  0.7  20419 19 4232      0   1 49.56057   f       0      1       0   0.5  0.7  235   albumin copper alk.phos    ast trig platelet protime stage2     4.14     54   7394.8 113.52   88      221    10.6     35     3.53    143    671.0 113.15   72      136    10.9     37     4.09     52    824.0  60.45  213      204     9.7     313    3.85     40   1181.0  88.35  130      244    10.6     316    3.66     28    685.0  72.85   58      198    10.8     319    3.56     39   1881.0  93.00  123      209    11.0     3> dd <- datadist(pbc)> options(datadist = "dd")# 生存模型> f <- psm(Surv(time,status) ~ age + sex, data =  pbc, dist='lognormal')> nom <- nomogram(f)> plot(nom)

效果圖如下

和文獻中的列線圖相比,rms的默認輸出結果中多出了Linear Predictor這個軸,如果想要去掉這個軸,可以通過如下方法

> f <- psm(Surv(time,status) ~ age + sex, data =  pbc, dist='lognormal')> nom <- nomogram(f, lp = F)> plot(nom)

效果圖如下

可以看到,LInear Predictor這個軸就不顯示了。對于生存模型,我們希望通過該模型預測患者的生存時間和生存概率,基礎的列線圖顯然并沒有這樣的信息,為此,我們需要自己寫函數(shù)來添加我們想要的軸,用法如下

> f <- psm(Surv(time,status) ~ age + sex, data =  pbc, dist='lognormal')> # 計算中位生存時間> med  <- Quantile(f)> # 構建生存概率> surv <- Survival(f)> nom <- nomogram(f,+     fun = list(function(x) med(lp = x, q = 0.5),+                function(x) surv(365,     x),+                function(x) surv(365 * 3, x),+                function(x) surv(365 * 5, x)),+     funlabel = c("Median Survival Time",+                   "1-year Survival Probability",+                   "3-year Survival Probability",+                   "5-year Survival Probability"),+     lp = F)> plot(nom)

效果圖如下

由于該數(shù)據(jù)中的生存時間time是以天為單位就算的,因此在計算年的時候進行了轉(zhuǎn)換。雖然加上了我們想要的信息,但是發(fā)現(xiàn)坐標軸的標簽重疊了,此時有幾種方法可以解決這個問題

1. 增加畫布的寬度,將寬度加大之后繪圖區(qū)域變寬,標簽間的距離變大,重疊情況會減少

2. 設置標簽的文字大小,在plot函數(shù)中通過cex.axis參數(shù)設置大小

3. 重新設置坐標軸的間隔,通過fun.at參數(shù),用法如下

> nom <- nomogram(f,+     fun = list(function(x) med(lp   =    x),+                function(x) surv(365,     x),+                function(x) surv(365 * 3, x),+                function(x) surv(365 * 5, x)),+     funlabel = c("Median Survival Time",+                   "1-year Survival Probability",+                   "3-year Survival Probability",+                   "5-year Survival Probability"),+     fun.at = list(c(10000, 20000, 30000, 40000, 60000, 90000),+                   c(0.96, 0.97, 0.98, 0.99, 0.995),+                   c(0.90, 0.92, 0.94, 0.96, 0.98),+                   c(0.6, 0.8, 0.9, 0.95)),              +     lp = F)> plot(nom)

效果圖如下

綜合使用以上3種方案,就可以得到一個文字標簽不會重疊的列線圖啦。

·end·

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多