R 具有指定颜色的点打印

R 具有指定颜色的点打印,r,ggplot2,plot,R,Ggplot2,Plot,我想使用ggplot2制作一些点图,但我需要为我的数据指定颜色,并为其中一些点图添加标签 下面是我的部分数据集,看起来像: FactorA Gene P-value logFC a A 0.01 2 a B 0.07 3 b A 0.05 -1 b B 0.03 -0.5 所以我想要的是 如果我的P

我想使用ggplot2制作一些点图,但我需要为我的数据指定颜色,并为其中一些点图添加标签

下面是我的部分数据集,看起来像:

FactorA   Gene   P-value      logFC
  a        A       0.01         2
  a        B       0.07         3
  b        A       0.05        -1
  b        B       0.03        -0.5
所以我想要的是

如果我的P值>0.05,则圆点为灰色, 如果P值<0.05且logFC>0,则圆点为红色,且 如果P值<0.05且logFC<0,则圆点为绿色。 然后我也希望这些点看起来像一个黑色轮廓的圆圈,填充方式如上所述。然后我只想用P值标记基因

这对我有效

df$new <- ifelse(df$Pvalue > 0.05, "grey",
    ifelse(df$logFC > 0, "red", "green"))
library(ggplot2)
q <- qplot(Pvalue, logFC, data = df, shape=new, fill=new, colour=new)
q <- q + scale_shape_manual(values=c(21,21,21)) 
q <- q + scale_fill_manual(values=c("green", "grey", "red")) + scale_colour_manual(values=c("black", "black", "black")) 
q <- q + geom_text(aes(label=ifelse(Pvalue > 0.05 ,as.character(FactorA),'')),hjust=0,just=0)
q + facet_wrap( ~ FactorA, ncol=2)

新列:Pflag符合您上面指定的内容。然后将颜色映射到您的标志变量。对于标签,geom_文本,在aes中定义您的标签,包括您希望P值<0.05的[conditional label][1]。[1] :列名中的破折号在R中不起作用。如果您希望在标准R中得到答案,则应发布一个文本文件并输入语句。是否可以发布到目前为止尝试过的ggplot2代码?添加了ggplot编辑。。。我认为这里的事情已经够复杂了,很高兴有了完整的设置。在那个版本中,我将恒定的颜色和形状合并到geom中,这样就不需要定义手动比例。如果你愿意的话,我可以作为一个单独的答案发布,但它似乎与你的答案没有本质上的区别。谢谢分享你的改进!当我运行df$new=ifelse函数时,出现了以下情况:$中的错误如果我们有您自己的数据,我们可以重现问题。这种类型的错误可能是由于各种原因造成的。我的数据格式与问题中显示的格式完全相同。是否需要在数据集中添加名为new的列?
library(ggplot2)
g <- ggplot(df, aes(x = Pvalue, y = logFC, fill = new) +
         geom_point(color = "black", shape = 21) + 
         scale_fill_manual(values = c("green", "grey", "red")) + 
         geom_text(aes(label = ifelse(Pvalue > 0.05,
                                      as.character(FactorA), '')),
                   hjust = 0) +
         facet_wrap(~ FactorA, ncol = 2)