希望它很容易理解.它与此处的示例基本相同.
运用
ggplot(mtcars, aes(factor(cyl), fill = factor(vs))) +
geom_bar(position = position_dodge(preserve = "single"))
Run Code Online (Sandbox Code Playgroud)
但是我得到Error in position_dodge(preserve = "single") :
unused argument (preserve = "single")/.ggplot2版本2.2.1
那么如何修改代码
ggplot(mtcars, aes(factor(cyl), fill = factor(vs))) +
geom_bar(position = "dodge")
Run Code Online (Sandbox Code Playgroud)
这一论点是在一月份的position_dodge开发版本中添加的。尚未在 CRAN 上发布。
解决方法是在 ggplot2 之外计算统计数据:
ggplot(as.data.frame(with(mtcars, table(cyl = factor(cyl), vs = factor(vs)))),
aes(factor(cyl), y = Freq, fill = factor(vs))) +
geom_col(position = "dodge") +
scale_fill_discrete(drop = FALSE)
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为零计数包含在传递给 geom 的数据中。