r - 如何在ggplot中对geom_col进行分组和标记?
问题描述
我正在尝试使用 R 和 ggplot2 从 GraphPad 重现图形。在少数情况下,我有少量样本的值:
df <- data.frame(Sample = c("blank", "blank", "blank", "A","A","A","A","A","A","B","B","B","B","B", "B", "C","C","C","C","C","C"),
Condition = c("control", "control", "control", "C1", "C1", "C1", "C2", "C2", "C2","C1", "C1", "C1", "C2", "C2", "C2","C1", "C1", "C1", "C2", "C2", "C2"),
Value = c(0.719, 1.25, 0.687, 8.19, 4.68, 3.53, 14.1, 7.11, 8.8, 6.48, 7.05, 4.82, 6.32, 4.97, 6.97, 5.5, 7.22, 6.89, 8.89, 6.83, 8.73))
df$Sample <- factor(df$Sample, levels = c("blank", "A", "B", "C"))
df$Condition <- factor(df$Condition, levels = c("control", "C1", "C2"))
我正在努力将它们组织和绘制为分组(按条件)和标记(按样本),如下所示:
我尝试使用fill
,position="dodge"
但这完全不是我想要的:
df %>%
ggplot +
aes(x = Sample, y = Value, fill = Condition) +
geom_col(position = "dodge")
请注意,我还想从图例中排除空白。
我正在尝试创建、绘制和标记另一列,例如:
df <- df %>%
mutate(Sample.Condition = paste(Sample, Condition, sep = "."))
..但它变得(太?)复杂了。为了学习,我正在寻找关于如何做到这一点的简单而整洁的解决方案。谢谢!
解决方案
最巧妙的解决方案可能是引入方面。
df %>%
ggplot +
aes(x = Sample, y = Value, fill = Condition) +
geom_col() +
facet_wrap(~Condition)
推荐阅读
- javascript - 对数组的对象进行分组和计数并创建新数组
- c++ - 带有空集的“越界迭代器”
- php - Codeigniter 中的多插入
- google-chrome-extension - Chrome 标签页 ExecuteScript
- ios - UIKit 未发布 UIAccessibility 通知
- python - 如何在tensorflow中使用skip与tf.data.Dataset api或将批处理设置为0
- c# - 滚动时将数据加载到 FlowControl - C#
- javascript - 一张图表,多系列多数据单数据
- ios - 监听 WKWebView 在 iPhone 上何时缩小
- php - 将 $516.91 转换为 51691