【问题标题】:change subpanel names in ggplot Predict在 ggplot Predict 中更改子面板名称
【发布时间】:2021-02-22 14:35:10
【问题描述】:

我使用多变量回归模型来探索变量之间的关系。

model<- lrm(mortality ~value_day0 + value_day5, dataframe, x=TRUE, y=TRUE)

然后可视化:

plot_model<- ggplot(Predict(model, fun=plogis), sepdiscrete="vertical", ylab="risk of mortality")

这给了我带有 2 个子图/子面板的图表,1 个代表第 0 天的值,1 个代表第 5 天的值。如何更改这些子面板的名称?目前,它们具有变量的名称(value_day0 和 value_day5),但我想更改它,而不必更改数据框中的变量名称。

一些样本数据

dataframe<-data.frame(mortality=rep(c(0,1), each=500), value_day0=sample(1:5, 1000, replace=TRUE), 
               value_day5=sample(1:5, 1000, replace=TRUE))

谢谢!

编辑:

ddist <- datadist(value_day0, value_day5, mortality)
options(datadist='ddist')
detach(dataframe)

【问题讨论】:

  • 运行示例数据和代码时,Predict 调用会引发错误。您可能想确认您的示例运行是否正确?
  • 嗨@xilliam,我在我的问题中添加了一些可能解决错误的代码!抱歉忘记添加前面的

标签: r ggplot2


【解决方案1】:

您的“plot_model”对象包含一个带有名为“.predictor.”的变量的 data.frame,该变量包含构面标签。您可以使用factor() 更改构面标签,而facet_grid() 使用labeller = label_value 默认设置完成其余的工作:

library(rms)
library(ggplot2)

dataframe <- data.frame(mortality=rep(c(0,1), each=500), value_day0=sample(1:5, 1000, replace=TRUE),value_day5=sample(1:5, 1000, replace=TRUE))

ddist <- datadist(dataframe)
options(datadist='ddist')

model<- lrm(mortality ~value_day0 + value_day5, dataframe, x=TRUE, y=TRUE)

plot_model<- ggplot(Predict(model, fun=plogis), sepdiscrete="vertical", ylab="risk of mortality")

# this code changes the changes the labels on the '.predictor.' variable.
plot_model$data$.predictor. <- factor(plot_model$data$.predictor., labels = c("Day 0", "Day 5"))

#  this 'label_value' labeller() call alters the facet labels
plot_model + facet_grid(. ~ .predictor., labeller = "label_value")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多