我想使用ggplot2
创建带有手动填充颜色的条形图。
library(ggplot2)
如果任何类别中没有零计数,这样可以正常工作。
d <- data.frame(x=factor(1:7, levels=1:7))
g <- ggplot(d, aes(x=x)) +
geom_bar(fill=rep(c("red", "blue"), length=7)) +
scale_x_discrete(drop=FALSE)
g
但如果任何计数为零,我会收到错误:
d2 <- data.frame(x=factor(1:6, levels=1:7))
g %+% d2
Error: Incompatible lengths for set aesthetics: fill
我该怎么办?
答案 0 :(得分:2)
您只需要改变填充方式:
d2 <- data.frame(x=factor(1:6, levels=1:7))
g <- ggplot(d2, aes(x=x)) +
geom_bar(aes(fill=x)) +
scale_x_discrete(drop=FALSE) +
scale_fill_manual(values=rep(c("red", "blue"), length=7))
g