R 具有指定颜色的点打印
我想使用ggplot2制作一些点图,但我需要为我的数据指定颜色,并为其中一些点图添加标签 下面是我的部分数据集,看起来像: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
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)