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

如何使多个Dotplot的Odds.Ratio刻度保持一致

解决方案

要让两个Dotplot的Odds.Ratio刻度保持一致,只需在ggplot代码中添加统一的大小刻度配置即可,具体修改如下:

修改后的代码示例(以Reactome_down数据为例)

data <- read.delim("Reactome_down.txt")

ggplot(data = data, aes(x = Condition, y = Term, 
                        color = Adjusted.P.value, size = Odds.Ratio)) + 
  geom_point() +
  scale_color_gradient(low = "red", high = "blue") +
  # 关键:设置统一的Odds.Ratio大小刻度
  scale_size_continuous(
    limits = c(10, 250),  # 指定刻度范围
    breaks = c(10, 50, 100, 150, 200, 250),  # 自定义刻度值
    oob = scales::squish  # 若数据存在超出范围的值,将其压缩到边界避免报错
  ) +
  theme(axis.text.x = element_text(color = "grey20", size = 12, angle = 90, hjust = .5, vjust = .5, face = "plain"),
        axis.text.y = element_text(color = "grey20", size = 10, angle = 0, hjust = 1, vjust = 0, face = "plain")) + 
  ylab("") + 
  xlab("") 

关键说明

  • scale_size_continuous用于配置连续型变量映射到点大小的刻度规则,两个图使用完全相同的该配置,就能实现刻度统一。
  • oob = scales::squish为可选配置:如果数据中存在Odds.Ratio小于10或大于250的情况,该参数会将超出范围的值强制显示在边界位置,避免绘图失败。
  • 绘制Reactome_up数据的图时,直接复用上述代码(替换读取的文件名)即可,两个图的刻度会自动保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 11:07:09