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

如何在R的ggplot中用中位数线与IQR替换散点并移除灰色背景

解决方案

修改后的完整代码

# 加载所需库
library(readxl)
library(ggplot2)
library(dplyr)

# 读取Excel数据
data <- read_excel("cfu calculator.xlsx")

# 一次性计算每组每日的中位数、四分位数(用于IQR)
summary_data <- data %>%
  group_by(DAY, Group) %>%
  summarize(
    median_cfu = median(CFU),
    q1 = quantile(CFU, probs = 0.25),
    q3 = quantile(CFU, probs = 0.75),
    .groups = "drop"  # 取消分组,避免后续ggplot警告
  )

# 绘制带中位数线条和IQR误差棒的图,移除灰色背景
ggplot(summary_data, aes(x = DAY, y = median_cfu, color = Group)) +
  geom_line(linewidth = 1) +  # 画中位数线条
  geom_errorbar(aes(ymin = q1, ymax = q3), width = 0.2) +  # 画IQR误差棒
  xlab("天数") +
  ylab("CFU") +
  ggtitle("感染组与未感染组CFU随时间变化") +
  scale_color_discrete(name = "组别", labels = c("感染组", "未感染组")) +
  theme_classic()  # 移除灰色背景,使用经典主题

关键修改说明

  • 合并统计计算:把原来分开的中位数和IQR计算合并成一个dplyr流程,减少冗余代码,同时添加.groups = "drop"避免分组残留导致的ggplot警告。
  • 替换散点为中位数线条+IQR:用geom_line()绘制各组中位数随时间的变化线条,geom_errorbar()展示IQR范围(Q1到Q3),width参数控制误差棒的横向宽度,让图更美观。
  • 移除灰色背景:使用theme_classic()直接切换到无灰色背景的经典主题,也可以用theme(panel.background = element_blank(), axis.line = element_line(color = "black"))手动设置背景为空,保留坐标轴线条。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 12:40:20