我已經撰寫了下面的代碼來創建一個火山圖,該圖基于data.frame“gseaRes”的變數“group”著色。彩色點指的是我感興趣的路徑,其他(不感興趣的)應該是灰色的,在背景中。我在 geom_point 中使用了引數“alpha”來使其更透明,但是彩色點在灰點內部總是模糊不清,灰點幾乎看不到,所以我們失去了它們有多少的資訊。如果某人知道如何在兩層中繪制這些點,我在徘徊,就像我們在頂部使用散點圖和線條一樣。是否有引數或其他編碼方式?
這是我使用的資料集:https ://github.com/mariakondili/GSEA/blob/main/GSEA_dataframe.tsv
這是我制作它的方式:
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()
uj5u.com熱心網友回復:
您可以使用兩個geom_point傳遞過濾資料集的物件,一個僅包含“其他”類別,一個包含您感興趣的路徑:
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()

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/523463.html
標籤:rggplot2散点图
上一篇:長格式的一張圖中的多條線圖
