如何使多个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
相关产品推荐
相关产品推荐

