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

如何调整ggcuminc绘图中图例的分组显示顺序?

解决ggcuminc绘图图例顺序不匹配因子级别的问题

问题根源

你当前的代码里,绘图时用的是原变量grade,而非你调整过因子级别的grade2,所以系统还是按grade的默认逻辑排序;另外即使使用了正确的变量,ggcuminc有时会默认按字母顺序渲染图例,需要手动指定顺序。

解决方案

  1. 确保绘图使用调整后的因子变量:把公式里的grade换成grade2
  2. 强制锁定因子顺序:用fct_relevel明确指定级别顺序(保险操作)
  3. 手动指定图例顺序:通过ggplot的scale_color_discrete和scale_fill_discrete固定图例展示顺序

修改后的代码示例

library(tidyverse)
library(survival)
library(ggsurvfit)

# 处理因子并强制指定顺序
trial2 <- trial %>% 
  mutate(grade2 = fct_recode(grade, one = "I", two = "II", three = "III") %>%
           fct_relevel("one", "two", "three"))

# 确认因子级别
levels(trial2$grade2)
# [1] "one"   "two"   "three"

# 绘图并设置图例顺序
p2 <- cuminc(Surv(ttdeath, death_cr) ~ grade2, data = trial2) %>% 
  ggcuminc() +
  scale_color_discrete(breaks = levels(trial2$grade2)) +
  scale_fill_discrete(breaks = levels(trial2$grade2))

说明

  • fct_relevel会强制把指定的级别按顺序排列,避免因原数据的潜在问题导致顺序变动
  • scale_color_discrete和scale_fill_discrete的breaks参数直接对应因子的级别顺序,让图例严格遵循你设置的one -> two -> three顺序展示

内容的提问来源于stack exchange,提问作者user23416006

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 19:25:04