错误:必须从色调调色板中请求至少一种颜色

时间:2019-11-04 07:51:59

标签: r ggplot2

我有一些看起来像这样的数据:

<int>   hgnc_symbol
<fctr>  structure
<int>   Promedio_senal
<dbl>   
>8903   MECP2   10225   7.006842    
>3216   CDKL5   10225   7.484454    
>1405   AUTS2   10225   12.801426   
>4254   DAPK1   10225   6.171004    
>12160  RBFOX1  10225   30.756440   
>8903   MECP2   10185   6.595135    
>3216   CDKL5   10185   6.067631    
>1405   AUTS2   10185   11.053545   
>4254   DAPK1   10185   6.222515    
>12160  RBFOX1  10185   25.431652   

最初它不是一个数据表,所以我通过这样做将我变成了小人物:

G_OBJ [,structure:= factor(结构,等级= 1:2,标签= c(“ 10225”,“ 10185”))]

setDT(G_OBJ)

我想做一个条形图,其中x轴是基因的名称(hgnc_symbol),而y轴是基因expresión(Promedio_senal) 我有关于两种不同大脑结构的数据,我想用不同的颜色并排显示两种结构的条形图。我用于执行此操作的代码如下:

G_OBJ[, structure:=factor(structure, levels = 1:2, labels = c("10225", "10185"))]

ggplot(G_OBJ, aes(hgnc_symbol, Promedio_senal)) + 
  geom_col(aes(fill=structure), position = "dodge")+
  scale_x_discrete("GEN") +
  scale_y_continuous("EXPRESION") +
  labs(title = "GENES_OBJETIVO")


但是当我运行此命令时,会出现以下错误消息:

  

错误:必须从色调调色板中请求至少一种颜色。

我认为错误在于我尝试使用结构作为填充色的部分,但是我不确定;即使是我不知道要更改以使其正确无误 感谢您的帮助

1 个答案:

答案 0 :(得分:1)

这是一种使用geom_bar并将structure作为字符(而不是将其转换为因数)的方法,直接在定义美学参数时使用。

library(tidyverse)
G_OBJ %>% 
  ggplot(aes(x = hgnc_symbol,
             y = Promedio_senal,
             fill = as.character (structure))) + 
  geom_bar(stat = "identity", position = position_dodge())+
  scale_x_discrete("GEN") +
  scale_y_continuous("EXPRESION") +
  labs(title = "GENES_OBJETIVO") +
  scale_fill_discrete(name = "structure")

enter image description here