标签: survminer

更改 ggsurvplot 的 x 轴标签

library(survival)
library(survminer)
Run Code Online (Sandbox Code Playgroud)

我正在使用 survminer 包来绘制未经调整的 Kaplan Meier 图。我正在计算比较不同暴露的死亡率,并且有一个非常具体的问题: 有没有办法更改 ggsurvplot 的 x 轴标签?就我而言,我想将时间点 0 替换为 30,将时间点 20 替换为 50,将时间点 40 替换为 70,将时间点 60 替换为 90。

我使用下面的代码创建 ggsurvplot:

fit31to90_Mortality <- survfit(msurv31to90DayMortality~Bacteria_Category, data = 

Mortality_31to90_Days_Plot <- 
ggsurvplot(fit31to90_Mortality, xlim = c(0,60), 
break.x.by = 20, xlab = "Day", ylab = c("Survival probability"), 
risk.table = "abs_pct", font.x = c(26, face = "bold"), 
font.y = c(26, face = "bold"), font.tickslab = c(24), 
font.legend = c(24), risk.table.fontsize = 7, risk.table.col = "black", size = 1) 
Mortality_31to90_Days_Plot$plot
Run Code Online (Sandbox Code Playgroud)

r survival-analysis survival survminer

6
推荐指数
1
解决办法
1万
查看次数

从 ggsurvplot 中的图例中删除变量名称

有没有一种简洁的方法来删除创建的图例中的变量名称ggsurvplot?例子:

library(survival)
library(survminer)

set.seed(123)
df=data.frame(gender=c(rep("male", 10), rep("female", 10)), value=c(rnorm(10,mean = 2), rnorm(10,mean = 3)))
fit = surv_fit(Surv(value) ~ gender, data = df)
p = ggsurvplot(fit, data = df,  surv.median.line = "none") 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想要的是从图例中删除“性别”一词,如下图所示。我可以通过手动设置图例标签来实现此目的:

p = ggsurvplot(fit, data = df,  surv.median.line = "none", legend.labs = c("male", "female")) 
Run Code Online (Sandbox Code Playgroud)

但还有更好的办法吗?

编辑:当我手动分配性别时(2.情节),我不小心交换了男性和女性,这表明这种方法是多么危险。

在此输入图像描述

r ggplot2 survminer

5
推荐指数
2
解决办法
3878
查看次数

UseMethod("grid.draw") 中的 ggsave 错误:没有适用于 'grid.draw' 的方法应用于类“c('ggsurvplot', 'ggsurv', 'list')”的对象

所以我使用生存曲线制作了 ggplot。

Wolcurves <- survfit(Surv(Days, Survival) ~ Wol, data = DCV_noPBS)
IFB_plot <- ggsurvplot(Wolcurves, data = DCV_noPBS,
                       line = c(2, 1),
                       pval = "p-value = 0", 
                       xlab = "Time in days",
                       ylab = "Proportional survival",
                       break.time.by = 1,
                       break.y.by = 0.2,
                       legend.labs = c("w1118wMel-Tet", "w1118wMel"))
Run Code Online (Sandbox Code Playgroud)

我用下面的代码遇到了这个错误。

ggsave(filename = "results/IFB2.pdf", plot = IFB_plot,
       width = 12, height = 10, dpi = 1000, units = "cm")
Run Code Online (Sandbox Code Playgroud)

Error in UseMethod("grid.draw") : no applicable method for 'grid.draw' applied to an object of class "c('ggsurvplot', …

survminer ggsave

5
推荐指数
1
解决办法
1897
查看次数

当因子分层时,在 RStudio 中使用 ggforest 绘制 Cox PH 模型?

当需要对模型变量之一进行分层时,我试图找到一种方法来从 Cox-PH 模型制作风险比的森林图。对于非分层模型,该ggforest()功能非常出色。运行一些示例代码

library(survival)
library(survminer)

model <- coxph(Surv(time, status) ~ sex + rx + adhere,
               data = colon )
ggforest(model)

colon <- within(colon, {
  sex <- factor(sex, labels = c("female", "male"))
  differ <- factor(differ, labels = c("well", "moderate", "poor"))
  extent <- factor(extent, labels = c("submuc.", "muscle", "serosa", "contig."))
})
bigmodel <-
  coxph(Surv(time, status) ~ sex + rx + adhere + differ + extent + node4,
        data = colon )
ggforest(bigmodel)
Run Code Online (Sandbox Code Playgroud)

产生这个图

非分层图

但是,如果我必须纠正分层的非比例性

stratamodel <- coxph(Surv(time, status) ~ sex …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 survminer

4
推荐指数
1
解决办法
1051
查看次数

使用 survminer (ggsurvplot) 将 Kaplan-Meier 图 y 轴更改为失败概率而不是生存概率?

我正在使用 survminer 包中的 ggsurvplot 创建一个 Kaplan-Meier 图,显示精神疾病家族史和精神疾病发病之间的关系。这是我使用过的代码:

km_fhr <- ggsurvplot(fit = survfit(Surv(fu_time, smidg) ~ fhr, data = df),
                     legend.labs = c("Control", "Family high-risk"),
                     legend.title = "",
                     censor.shape = 124,
                     censor.size = 2.5,
                     palette = c("#00ABE7", "#FFA69E")) +
  labs(x = "Follow-up time (years)", y = "Probability of no SMI diagnosis")
Run Code Online (Sandbox Code Playgroud)

卡普兰-迈耶曲线如下所示:

卡普兰-迈耶图

在我看来,在 y 轴上绘制疾病风险(失败率)而不是无病概率(生存率)会更直观。我认为有一个简单的方法可以做到这一点,但我无法在 survminer 文档中找到描述。

先感谢您!

r ggplot2 survival-analysis survminer

4
推荐指数
1
解决办法
1801
查看次数

用plotly绘制生存图

那里!我尝试使用“plotly”包来使我的生存曲线具有交互性,因此对于可重复的示例,我使用“lung”数据集:

library(survival)
library(survminer)
library(plotly)
sf_lung <- survival::survfit(survival::Surv(time, status) ~ 1, data = lung)
p1 <- ggsurvplot(sf_lung, main = "Kaplan-Meier Curve for the NCCTG Lung Cancer Data")
plotly::ggplotly(p1)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

UseMethod("ggplotly", p) 中的错误:没有适用于 'ggplotly' 的方法应用于类“c('ggsurvplot', 'ggsurv', 'list')”的对象

那么有什么问题吗?
我的会话信息:
R 版本 4.0.2 (2020-06-22){...}
其他附加软件包:
surviviner_3.2-7 survminer_0.4.8 ggpubr_0.4.0plotly_4.9.2.1 ggplot2_3.3.2

r survival-analysis plotly r-plotly survminer

2
推荐指数
1
解决办法
1473
查看次数

ggsave ggsurvplot 与risk.table

我正在尝试使用ggsurvplot来保存 a 。然而,输出 off始终只是. 我也尝试过这个这个。没有一个在工作。risk.tableggsaveggsaverisk.table

library(data.table)
library(survival)
library(survminer)

OS <- c(c(1:100), seq(1, 75, length = 50), c(1:50))
dead <- rep(1, times = 200)
variable <- c(rep(0, times = 100), rep(1, times = 50), rep(2, times = 50))

dt <- data.table(OS = OS,
                 dead = dead,
                 variable = variable)

survfit <- survfit(Surv(OS, dead) ~ variable, data = dt)

ggsurvplot(survfit, data = dt,
           risk.table = TRUE)

ggsave("test.png")
Run Code Online (Sandbox Code Playgroud)

r survival survminer ggsave

1
推荐指数
1
解决办法
1368
查看次数

标签 统计

survminer ×7

r ×6

ggplot2 ×3

survival-analysis ×3

ggsave ×2

survival ×2

plotly ×1

r-plotly ×1