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

在R的ggplot中重命名数据标签、调整排序及散点颜色

解决R语言ggplot箱线图的标签、顺序和散点颜色问题

核心修改思路

不用改动原始数据,通过调整因子列的水平属性实现标签替换和显示顺序调整,同时单独设置散点颜色,完全不影响你已有的统计结果。

完整可运行代码

library(ggplot2)
library(dplyr)

# 读取数据(保留你原有读取逻辑)
ratios <- read.table("qPCRSummary.csv", 
                     dec = ".",
                     sep = ",",
                     header = T,
                     stringsAsFactors = T)

# 关键步骤:修改因子标签+指定显示顺序
ratios$Sample <- factor(
  ratios$Sample,
  # 按你要的顺序列出原始样本名
  levels = c("S16", "S19", "S17", "S20", "S127"),
  # 对应替换成新的显示标签,把括号里的描述改成你需要的内容
  labels = c("#16 (auto)", "#19 (自定义描述)", "#17 (自定义描述)", "#20 (自定义描述)", "#127 (X-linked)")
)

# 绘图:散点强制设为黑色
ggplot(ratios, aes(x= Sample, y= RedEx, fill= Sample)) + 
  geom_boxplot() +
  # 这里直接指定color和fill为黑色,脱离箱体的颜色映射
  geom_dotplot(binaxis="y", stackdir="center", dotsize=0.5, color="black", fill="black") +
  # 颜色值对应5个样本,去掉你原来多余的颜色项
  scale_fill_manual(values=c("aquamarine2", "lightskyblue2", "#2ecc71","#0099f8", "#e74c3c")) +
  theme_classic() +
  labs(
    x = "Transgenic Line",
    y = "Average expression"
  )

关键修改点说明

  1. 修正你之前的错误操作:你用mutate("#16 (auto)" = S16)是在新建列,但S16是因子的水平值不是列名,所以报错。正确做法是直接修改现有Sample列的因子水平标签,而非新建列。
  2. 控制x轴顺序:factor()里的levels参数决定了绘图时的显示顺序,按你需要的顺序列出原始样本名即可。
  3. 散点改黑色:在geom_dotplot中直接设置color="black"和fill="black",强制散点颜色为黑色,不再和箱体颜色绑定。

可选tidyverse风格写法

如果你习惯用dplyr链式语法,也可以这样修改因子:

ratios <- ratios %>%
  mutate(
    Sample = Sample %>%
      # 先调整顺序
      fct_relevel("S16", "S19", "S17", "S20", "S127") %>%
      # 再替换标签
      fct_recode(
        "#16 (auto)" = "S16",
        "#127 (X-linked)" = "S127",
        "#19 (自定义描述)" = "S19",
        "#17 (自定义描述)" = "S17",
        "#20 (自定义描述)" = "S20"
      )
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:18:20