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

如何优化基于fustat事件状态的futime随访时间分布ggplot图形?

优化随访时间分布直方图至目标样式

目标图核心特点是把不同事件状态(fustat)的随访时间分布分开展示,每组单独成图,布局清晰、视觉风格简洁。以下是调整后的代码和关键优化点:

完整代码

# 加载数据和包
data(cancer, package="survival")
library(ggplot2)

# 绘制优化后的随访时间分布图
ggplot(ovarian, aes(x = futime, fill = factor(fustat))) +
  # 改用频率直方图,消除样本量差异带来的计数偏差,柱子加白色边框、半透明填充
  geom_histogram(aes(y = after_stat(density)), binwidth = 50, alpha = 0.7, color = "white") +
  # 分面展示不同事件状态,设置中文标签,每行一个面板
  facet_wrap(~factor(fustat, labels = c("无事件", "发生事件")), nrow = 2) +
  # 设置清晰的中文标签
  labs(x = "随访时间(天)", y = "频率", fill = "事件状态") +
  # 选用柔和对比色,贴近目标图风格
  scale_fill_manual(values = c("#999999", "#E69F00")) +
  # 优化主题,去掉冗余网格,调整图例和分面样式
  theme_bw() +
  theme(
    panel.grid = element_blank(),
    legend.position = "bottom",
    strip.background = element_rect(fill = "lightgray"),
    strip.text = element_text(face = "bold")
  )

关键优化点

  • 分面布局:用facet_wrap把两个事件状态的分布拆成独立面板,和目标图结构完全匹配,同时给分面标签加上中文说明,更直观
  • Y轴改为频率:默认的计数直方图会受样本量影响,改用频率后能更准确对比两组的分布形态
  • 视觉细节调整:给直方图柱子加白色边框、半透明填充,避免色块重叠;去掉背景网格线,让图更清爽;把图例移到底部,分面标题加粗并加浅灰色背景,提升可读性
  • 标签与颜色:把所有标签换成中文,颜色选用低饱和度的对比色,贴近目标图的简洁风格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 04:25:23