我想使用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 标记基因。然后我想要我的dotplots facet_wrap由FactorA。
我应该如何在ggplot2中指定这些?
答案 0 :(得分:1)
这对我有用
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)
感谢@oshun获取条件geom_text
或者,使用ggplot()
代替qplot()
:
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)