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) 有没有一种简洁的方法来删除创建的图例中的变量名称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.情节),我不小心交换了男性和女性,这表明这种方法是多么危险。
所以我使用生存曲线制作了 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', …
当需要对模型变量之一进行分层时,我试图找到一种方法来从 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) 我正在使用 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 文档中找到描述。
先感谢您!
那里!我尝试使用“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
我正在尝试使用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)