You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ggsurvfit生存概率图字体大小调整失败求助

ggsurvfit生存概率图字体大小调整失败求助

问题描述

我在用R Markdown绘制生存概率图时用了ggsurvfit包,结果输出的图字体小到几乎看不清!我尝试调整字体大小但没成功,请问该怎么解决?

我的代码如下:

library(ggsurvfit)

ggsurvfit(SF_ALL_OBJECTS)+
  labs(
    x = "Time in Years",
    y = "Overall Survival Probability")+
  scale_y_continuous(expand = c(0.025, 0), limits = c(0, 1))

我试过添加以下代码,但没用:

+  theme(text=element_text(size=24,  family="sans")) 

解决方案

别着急,我来帮你排查问题!其实ggsurvfit生成的图基于ggplot2,但它自带专属主题系统,直接用theme()覆盖会被包自带主题的优先级压制,试试下面几种方法:

  • 方法一:在ggsurvfit()中直接指定主题参数
    把自定义主题传入ggsurvfit()的theme参数,能确保你的设置优先生效:

    library(ggsurvfit)
    
    ggsurvfit(SF_ALL_OBJECTS, theme = theme_bw(base_size = 24)) +
      labs(
        x = "Time in Years",
        y = "Overall Survival Probability")+
      scale_y_continuous(expand = c(0.025, 0), limits = c(0, 1)) +
      theme(text = element_text(family = "sans"))
    

    这里先用theme_bw(base_size = 24)设定基础字体大小,再补充你需要的字体族设置。

  • 方法二:全局更新ggplot2主题
    如果不想每次绘图都重复设置主题,可以先全局更新ggplot2的主题配置,后续所有ggplot2系的图都会自动应用:

    theme_update(text = element_text(size = 24, family = "sans"))
    
    ggsurvfit(SF_ALL_OBJECTS)+
      labs(
        x = "Time in Years",
        y = "Overall Survival Probability")+
      scale_y_continuous(expand = c(0.025, 0), limits = c(0, 1))
    
  • 方法三:针对性调整特定元素
    如果你只想放大某几个部分的字体(比如坐标轴标题、刻度标签),可以单独指定元素的大小,更灵活:

    ggsurvfit(SF_ALL_OBJECTS)+
      labs(
        x = "Time in Years",
        y = "Overall Survival Probability")+
      scale_y_continuous(expand = c(0.025, 0), limits = c(0, 1)) +
      theme(
        axis.title = element_text(size = 24),
        axis.text = element_text(size = 20),
        legend.text = element_text(size = 20),
        legend.title = element_text(size = 22),
        family = "sans"
      )
    

补充说明

你之前的方法失效,是因为ggsurvfit默认会应用theme_ggsurvfit()主题,这个主题会在你添加的theme()之后再覆盖部分样式,导致你的设置没生效。把主题放在ggsurvfit()参数里或者全局更新,就能避开这个优先级问题啦!


备注:内容来源于stack exchange,提问作者Ahmed Mabrouk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 12:39:53