r - 使用 facet_grid 和一个因素来确定列的填充颜色时保持列的顺序 (geom_col)
问题描述
geom_col
我对and有一个小问题facet_grid
。我想绘制在实验期间接受 x 次戳(范围从 1 到 4,参见 x 轴)的活跃和休息个体的百分比。我想在不同的窗格中保持列的相同位置,这意味着左侧的活动列(深灰色)和右侧的其余列(浅灰色)。这样,每个值Round.no
都会为活跃个体列“保留”空间,即使在该轮中没有活跃个体接收到该数量的戳。
从下图中可以看出,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)
结果:
推荐阅读
- firebase - Google Analytics 在不“弹出” React Native 应用程序的情况下是否可用
- javascript - 如何遍历每个列表并在其中添加本地存储项目
- html - 材料设计表格所需图案
- c++ - BOOST::ASIO - UDP - 端点被覆盖
- wordpress - WordPress 5.0 更新问题
- python - 使用 Python 访问凭证存储
- android - Android - 使用 4K GLSurfaceView 启用 4K Activity
- shell - 用于删除某些文件并重命名其他文件的 shell 脚本
- javascript - 参考错误:尝试将 json 对象传递给 java 文件时未定义数据
- c# - Google Cloud Vision API 和 Xamarin 的未处理异常