0

想要制作一个根据重要性和差异表达着色的火山图。使用来自 Limma 对象的 R 中的 toptable 制作了一个数据框。根据调整后的 p 值和 logfc 将颜色列添加到数据框中。所以每个基因也有一个颜色分配(“填充),然后用这些颜色来制作ggplot:

 geom_point(mapping = aes(x= logFC, y= log10adj, colour = fill))+
 geom_hline(yintercept=1.3, linetype="dashed", color = "red")+
 geom_vline(xintercept=-1, linetype="dashed", colour= "blue")+
 geom_vline(xintercept=1, linetype="dashed", colour= "blue")+
 xlab("Log2 Fold Change")+
 ylab("-Log10 Adjusted P-value")+
 xlim(-3,3)+
 theme_grey()

但是 ggplot 没有正确着色:

不正确的情节

如果我将形状添加到美学中,则会出现错误:

ggplot(voom_topt)+
  geom_point(mapping = aes(x= logFC, y= log10adj, colour = fill, shape = 23))+
  geom_hline(yintercept=1.3, linetype="dashed", color = "red")+
  geom_vline(xintercept=-1, linetype="dashed", colour= "blue")+
  geom_vline(xintercept=1, linetype="dashed", colour= "blue")+
  xlab("Log2 Fold Change")+
  ylab("-Log10 Adjusted P-value")+
  xlim(-3,3)+
  theme_grey()

错误:无法将连续变量映射到形状 Runrlang::last_error()以查看错误发生的位置。

有谁知道如何解决这个问题?我不知道为什么会出错(Ps 我对 R 很陌生)

谢谢你的帮助!!

4

1 回答 1

1

你需要这样scale_color_manual使用

ggplot(mtcars) +
geom_point(mapping = aes(
  x = mpg, y = wt, color = factor(cyl))) + 
scale_color_manual(values = c("red", "black", "green"))

从我可以看到你的代码,你会设置color = factor(fill)然后将你的四种颜色传递给scale_color_manual

于 2020-04-20T21:03:06.217 回答