我正在寻找一种方法来控制条形图中各部分的颜色,以便在我绘制数据的子集时它们是稳定的 . 我见过这个解决方案:How to assign colors to categorical variables in ggplot2 that have stable mapping?
这看起来很有希望,但我似乎无法将其应用于我的数据 . 我怀疑这与我正在使用的图层有关 .
我生成图的代码是:
plot = ggplot(subdata,mapping = aes(x = as.factor(group))) +
layer(geom = "bar", mapping = aes(fill = as.factor(NUM_MOTIFS)))
我可以获得完整数据集的级别,但是当我尝试将其添加到绘图中时,我不断收到此错误:
Error: Aesthetics must either be length one, or the same length as the dataProblems:as.factor(NUM_MOTIFS)
无论我把它放在哪里......任何想法?
编辑:示例数据:
fulldata = data.frame(group = rep("A",10), NUM_MOTIFS = c(0,0,1,1,1,2,2,2,4,5))
subdata = data.frame(group = rep("B",8), NUM_MOTIFS = c(0,0,1,1,2,2,2,2))
非常感谢!
2 回答
我认为这样做会有所帮助 . 请注意,您可以为'cbbPalette'(some examples)选择其他值 .
我想这就是你需要的: