繁体   English   中英

使用 facet_grid 和一个因子来确定列的填充颜色时保持列的顺序 (geom_col)

[英]Maintain order of columns (geom_col) when using facet_grid and a factor to determine columns' fill colour

我对geom_colfacet_grid有一个小问题。 我想绘制在实验期间接受 x 次戳(范围从 1 到 4,见 x 轴)的活跃和休息个体的百分比。 我想在不同的窗格中保持列的相同位置,这意味着左侧的活动列(深灰色)和右侧的其余列(浅灰色)。 通过这种方式, Round.no每个值都会为活跃个人的列“保留”空间,即使在该轮中没有收到该数量Round.no的活跃个人。

从下图中可以看出, ggplot将列向左移动,那里有空闲空间(没有在该轮中收到那么多ggplot活跃个人)。 这是在第一组中接受 3 次戳和在第三组中接受 4 次戳的个体的情况。

在此处输入图片说明

如何在不改变因子顺序的情况下保持顺序? 我需要保持这个顺序(左侧活动,右侧休息)以与其他情节保持一致。

这是我一直在使用的代码:

plot <- ggplot(plot_summary.df, aes(x = as.factor(no.Pokes), y = perc, fill = Resting)) 
plot <- plot + geom_col(position = position_dodge(preserve = "single"))
plot <- plot + facet_grid(rows = plot_summary.df$Round.no)

谢谢

我在发布这个帖子后几秒钟就回答了自己......

所需要做的就是用百分比 = 0“填充”空空间。我创建了 4 行,其中perc值等于 0。因此, ggplot考虑了这些列,但不显示它们。

附上代码:

dumdum <- plot_summary.df[1:4,]

dumdum$Round.no <- c(1, 1, 1, 3)
dumdum$no.Pokes <- c(3, 4, 4, 4)
dumdum$Resting<- c("N", "N", "Y", "N")
dumdum$perc <- c(0, 0, 0, 0)

plot_summary.df <- bind_rows(plot_summary.df, dumdum)

结果:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM