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

如何设置ggplot2绘图中图例的标题、颜色及刻度断点数量?

解决方案

你提到的两个需求都可以通过调整ggplot的标度函数和引导参数实现,具体修改方法如下:

  • 控制numDEInCat对应的size图例断点:在scale_size()中添加breaks参数,传入你想要展示的数值向量即可,还可以配合limits参数固定图例的数值范围。
  • 自定义图例颜色:如果是调整校正p值对应的渐变色,直接修改scale_color_gradient()的low和high参数值即可;如果是需要调整size图例的点颜色,可以通过guides()函数的override.aes参数覆盖size图例的默认样式。

以下是修改后的完整示例代码:

term <-c("snoRNA binding", "preprophase band", "kinesin complex", "microtubule motor activity", "DNA replication")
fc <-runif(5, 1.00, 5.00)
padj_BH <-runif(5, 0.001, 0.05)
numDEInCat <-runif(5, 30, 300)

ggdata <- data.frame(term,fc,padj_BH,  numDEInCat)

gg1 <- ggplot(ggdata,
  aes(x = term, y = fc, size = numDEInCat, color = padj_BH)) +

  expand_limits(y = 1) +
  geom_point(shape = 16,inherit.aes = T) +
  # 自定义size图例的断点和范围,示例展示50、150、250三个节点
  scale_size(range = c(2.5,12.5), 
             breaks = c(50, 150, 250),
             limits = c(30, 300)) +
  # 可自定义p值渐变配色,这里保留你原有的红到蓝配置,也可以自行修改色值
  scale_color_gradient(low= "#ff0303",
                       high="#1e00b3")+
  
  xlab('') + ylab('Fold Enrichment') +
  labs(
    title = "Gene Ontology all",
    subtitle = 'BH-adjusted',
    caption = '', 
    color="Adjusted P-value",
    size="count") +

  theme_bw(base_size = 24) +
  theme(
    legend.position = 'right',
    legend.background = element_rect(),
    plot.title = element_text(angle = 0, size = 16, face = 'bold', vjust = 1),
    plot.subtitle = element_text(angle = 0, size = 14, face = 'bold', vjust = 1),
    plot.caption = element_text(angle = 0, size = 12, face = 'bold', vjust = 1),

    axis.text.x = element_text(angle = 0, size = 12, face = 'bold', hjust = 1.10),
    axis.text.y = element_text(angle = 0, size = 12, face = 'bold', vjust = 0.5),
    axis.title = element_text(size = 12, face = 'bold'),
    axis.title.x = element_text(size = 12, face = 'bold'),
    axis.title.y = element_text(size = 12, face = 'bold'),
    axis.line = element_line(colour = 'black'),

    legend.key = element_blank(),
    legend.key.size = unit(1, "cm"),
    legend.text = element_text(size = 14, face = "bold"),
    title = element_text(size = 14, face = "bold")) +
  # 可选配置:如果需要把size图例的点统一改为指定颜色,去掉下一行注释即可,色值可自行修改
  # guides(size = guide_legend(override.aes = list(color = "#1e00b3"))) +
  coord_flip()

gg1

如果需要更丰富的配色方案,也可以把scale_color_gradient替换为scale_color_viridis_c等ggplot内置的配色标度函数,适配不同的可视化需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:54:08