使用 ggplot2 我正在创建一个直方图,其中水平轴上的一个因子和填充颜色的另一个因子,使用一个闪避的位置。我的问题是,填充因子有时只取一个值作为水平因子的值,并且没有什么可以躲避的,条形图占据了整个宽度。有没有办法让它不闪避任何东西,以便所有条形宽度都相同?或者等效地绘制0?
例如
ggplot(data = mtcars, aes(x = factor(carb), fill = factor(gear))) +
geom_histogram(position = "dodge")
这个答案有几个想法。在新版本发布之前也有人问过,所以也许有什么变化?使用方面(也显示在这里)我不喜欢我的情况,虽然我认为编辑数据和使用geom_bar
可以工作,但感觉不优雅。此外,当我尝试刻面时
ggplot(mtcars, aes(x = factor(carb), fill = factor(gear))) +
geom_bar() + facet_grid(~factor(carb))
我收到错误“layout_base 中的错误(数据,cols,drop = drop):至少一层必须包含用于构面的所有变量”
我想我可以生成一个计数数据框,然后使用geom_bar
,
mtcounts <- ddply(subset(mtcars, select = c("carb", "gear")),
.fun = count, .variables = c("carb", "gear"))
用 0 填充不存在的级别。有谁知道这是否可行或是否有更好的方法?