如果使用躲避条形图,是否有办法控制哪一个元素在另一个元素前面绘制。
ggplot(mtcars, aes(x=factor(cyl), fill=factor(vs))) +
geom_bar(position= position_dodge (width = - 0.5))
在此示例中,蓝色条形图绘制在红色条形图的前面。是否可以在不破解alpha值的情况下撤销订单?
答案 0 :(得分:2)
你在这里的控制是有限的。使用因子水平,我们可以控制i)fill
颜色排序和ii)使用position_dodge
group
的排序。
以下是四个选项:
p1 <- ggplot(mtcars, aes(x = factor(cyl), fill = factor(vs, 0:1), group = factor(vs, 0:1))) +
geom_bar(position = position_dodge(width = - 0.5))
p2 <- ggplot(mtcars, aes(x = factor(cyl), fill = factor(vs, 0:1), group = factor(vs, 1:0))) +
geom_bar(position = position_dodge(width = - 0.5))
p3 <- ggplot(mtcars, aes(x = factor(cyl), fill = factor(vs, 1:0), group = factor(vs, 0:1))) +
geom_bar(position = position_dodge(width = - 0.5))
p4 <- ggplot(mtcars, aes(x = factor(cyl), fill = factor(vs, 1:0), group = factor(vs, 1:0))) +
geom_bar(position = position_dodge(width = - 0.5))
library(cowplot)
plot_grid(p1, p2, p3, p4, align = 'hv')
所以似乎只有躲避令很重要。至少在开发版中,右侧栏始终绘制在左侧栏的前面。