在R中使用rms包绘制列线图:自定义轴标签方法咨询
自定义rms包列线图轴名称的方法
有两种常用方法可以实现rms包列线图的轴名称自定义:
方法一:修改datadist的变量标签
rms包生成列线图时,默认会调用datadist对象中存储的变量标签。你可以直接修改该对象的标签内容,之后重新生成列线图即可:
library(rms) ddist <- datadist(data) # 修改对应变量的标签 ddist$labels["Age Deceased"] <- "死者年龄" ddist$labels["skull_fractures_i"] <- "颅骨骨折" ddist$labels["intracranial_hemorrhage_i"] <- "颅内出血" ddist$labels["brain_injuries_i"] <- "脑损伤" # 更新全局datadist设置 options(datadist='ddist') # 重新拟合模型(若之前已拟合,也可直接生成列线图) mod.bi <- lrm(blunt_force_i2~ `Age Deceased`+skull_fractures_i+intracranial_hemorrhage_i+brain_injuries_i, data) # 生成列线图 nom.bi <- nomogram(mod.bi, fun=plogis, funlabel='钝性颅脑损伤风险') plot(nom.bi)
方法二:使用nomogram函数的varname参数直接指定
如果不想修改全局的datadist,可以在调用nomogram()时,通过varname参数直接为每个变量设置自定义名称,变量名需与模型中的变量名完全匹配(包括带反引号的特殊命名):
library(rms) ddist <- datadist(data) options(datadist='ddist') mod.bi <- lrm(blunt_force_i2~ `Age Deceased`+skull_fractures_i+intracranial_hemorrhage_i+brain_injuries_i, data) # 生成列线图时指定自定义轴名 nom.bi <- nomogram(mod.bi, fun=plogis, funlabel='钝性颅脑损伤风险', varname=c(`Age Deceased`="死者年龄", skull_fractures_i="颅骨骨折", intracranial_hemorrhage_i="颅内出血", brain_injuries_i="脑损伤")) plot(nom.bi)
注意事项
- 使用
varname参数时,变量名必须和模型公式中的名称完全一致,比如带空格的变量Age Deceased要保留反引号。 - 修改
datadist后,记得执行options(datadist='ddist')让新的标签设置生效。
内容的提问来源于stack exchange,提问作者AlexH
相关产品推荐
相关产品推荐

