我有一些看起来像这样的数据:
<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")
但是当我运行此命令时,会出现以下错误消息:
错误:必须从色调调色板中请求至少一种颜色。
我认为错误在于我尝试使用结构作为填充色的部分,但是我不确定;即使是我不知道要更改以使其正确无误 感谢您的帮助
答案 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")