首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ggplot2 R显示背景中其他颜色的火山图点

用ggplot2 R显示背景中其他颜色的火山图点
EN

Stack Overflow用户
提问于 2022-10-26 09:35:58
回答 1查看 35关注 0票数 2

我编写了下面的代码来创建一个火山图,它是基于data.frame "gseaRes“的变量"group”着色的。有色点指的是我感兴趣的路径,而其他(不感兴趣的)路径应该是灰色的,在背景中。我使用geom_point中的参数"alpha“来使其更透明,但灰色点在灰色点内总是模糊不清,灰色点很难被看到,所以我们不知道它们是多少。我在徘徊,如果有人知道如何将这些点分为两层,一层对另一层,就像我们对顶部的散点图和线条所做的那样。有参数吗?还是用另一种方式编码?

下面是我使用的数据集:https://github.com/mariakondili/GSEA/blob/main/GSEA_dataframe.tsv

下面是我制作它的方法:

代码语言:javascript
复制
suppressPackageStartupMessages(library(tidyverse)) 

gseaRes %>%  
mutate("group" = ifelse(str_detect(pathway,"blabla1"),"group1",
                                    ifelse(str_detect(pathway,"blabla2"), "group2",   
                                    ifelse(str_detect(pathway,"blabla3"), "group3",
                                    ifelse(str_detect(pathway,"blabla4"), "group4",
                                    ifelse(str_detect(pathway,"blabla5"),"group5","Other"))))))



ggplot(gseaRes , aes(x=-log10(padj), y=NES, size=size, col=group)) +
geom_point(alpha=ifelse(gseaRes$group=="Other",0.02, 1)) +
scale_color_manual(values = c("group1" = "violetred",
                              "group2" = "royalblue1" ,
                              "group3"="orange", 
                               "group4" = "cyan",
                               "group5" ="tomato4",
                               "Other" = "grey30")) + theme_classic()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-26 09:52:41

您可以使用两个传递筛选数据集的geom_point,一个只包含“其他”类别,一个包含您感兴趣的路径:

代码语言:javascript
复制
library(tidyverse)

gseaRes <- read_tsv("https://raw.githubusercontent.com/mariakondili/GSEA/main/GSEA_dataframe.tsv")

gseaRes <- gseaRes %>%
  mutate(group = ifelse(str_detect(pathway, "_ACTIN"), "group1",
    ifelse(str_detect(pathway, "blabla"), "group2",
      ifelse(str_detect(pathway, "blabla"), "group3",
        ifelse(str_detect(pathway, "blabla"), "group4",
          ifelse(str_detect(pathway, "blabla"), "group5", "Other")
        )
      )
    )
  ))

ggplot(gseaRes, aes(x = -log10(padj), y = NES, size = size, col = group)) +
  geom_point(data = filter(gseaRes, group == "Other"), alpha = .02) +
  geom_point(data = filter(gseaRes, !group == "Other")) +
  scale_color_manual(values = c(
    "group1" = "violetred",
    "group2" = "royalblue1",
    "group3" = "orange",
    "group4" = "cyan",
    "group5" = "tomato4",
    "Other" = "grey30"
  )) +
  theme_classic()

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74205581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档