ggplot2 不等 geom_bar 堆栈大小

ggplot2 Unequal geom_bar stack size

我在使用 geom_bar 比较两个样本 class 化方法时遇到问题,我想证明 classifier A 的相同样本可以导致与 classifier B.

不同的结果

我一直在尝试的示例如下 -

library("ggplot2")
dfr <- data.frame(class=sample(LETTERS[1:5], 10, replace=TRUE), 
                  classifier=rep(c("A", "B"), c(5, 5)), 
                  id=rep(paste("X_", 1:5, sep = ""), 2)) 

此处我们有 data.frame 为我们提供有关 Classifier、Class 和样本 ID

的信息

我们可以显示它以显示每个 class 的比例如何根据使用的 class 过滤器改变

ggplot(dfr, aes(x = classifier, fill = class)) + 
  geom_bar(stat="bin")

但是,如果我想将样本与它们自己进行比较(即让相同的样本彼此相邻以准确查看哪些样本发生了变化以及发生了什么变化),我使用以下代码

ggplot(dfr, aes(x=classifier, y=as.factor(id), fill=class)) +
  geom_bar(stat="identity", colour="WHITE")

这就是我的问题所在。正如您所看到的,由于某种原因,堆叠部分的面积越大,您看的条越往上,我不知道如何强制大小相同。

任何有关如何最好地解决此问题以使部分区域相等并且 Id 标签与其指定部分相邻的任何建议都将不胜感激!

将我的评论包装成答案:

ggplot(dfr, aes(x = classifier, y = id, fill = class)) +
  geom_tile(colour = "white")