尝试在 R 中制作条形图,其中每行按身份进行颜色,点根据另一个变量更改透明度

问题描述 投票:0回答:1

我正在尝试制作一个条形图,其中每行都由变量“ident”着色,然后点根据变量“Pvalue”更改透明度,但是我想要一个阈值,其中只有具有 pvalue 的点<0.1 are colored the rest should be a light grey color.

到目前为止,我尝试了以下方法:

p = ggplot(da_results, aes(x=ident, y=logFC,color = ident)) + geom_jitter()+coord_flip()+geom_point(alpha = da_results$PValue) + 主题(panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.background = element_blank(), axis.line = element_line(颜色 = "黑色"))+geom_hline(yintercept = 0)

这给了我除了p值阈值之外的一切。

ggplot2 rstudio
1个回答
0
投票

也许尝试使用 alpha 作为一种美学?例如

library(tidyverse)

da_results <- read.table(text = "ident  baseMean    logFC  lfcSE   stat    pvalue  padj
ENSG00000000003.14  2700.791337 -0.345466785    0.202389477 -1.706940451    0.087833121 0.001
ENSG00000000419.12  1571.143316 -0.348258736    0.150807514 -2.309293001    0.020927328 0.120478416
ENSG00000000457.13  526.2282051 -0.051250213    0.180482116 -0.283962835    0.776438862 0.003
ENSG00000000460.16  1108.138705 -0.078538637    0.167859597 -0.467882913    0.639868323 0.827329552
ENSG00000001036.13  2662.132047 0.121419414 0.175209898 0.692994033 0.488313296 0.728842774
ENSG00000001084.10  1325.447272 0.89    0.154875429 -0.423289781    0.672083849 0.0004
ENSG00000001167.14  1829.828657 -0.221749678    0.153100403 -1.448393819    0.147506943 0.386446872
ENSG00000001460.17  641.7582879 -0.252419377    0.183602552 -1.374814095    0.169189087 0.417816879",
header = TRUE)

ggplot(da_results, aes(x=ident, y=logFC, color = ident)) +
  geom_jitter() +
  coord_flip() +
  geom_point(aes(alpha = pvalue)) +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.line = element_line(colour = "black")) +
  geom_hline(yintercept = 0)

创建于 2024-03-13,使用 reprex v2.1.0

© www.soinside.com 2019 - 2024. All rights reserved.