首页 > 解决方案 > 如何:两个水平条形图“彼此重叠”

问题描述

我有一个数据框:失败 [3,3,3,1] 和通过 [50,40,50,10]

我只想制作一个失败和通过的条形图

b_f <- barplot(dat_record$Fail[1], horiz = TRUE, ylab = "FAIL", las = 2, col = "red", xlim = c(0,200))

b_p <- barplot(dat_record$Pass[2], horiz = TRUE, ylab = "PASS", las = 2, col = "green", xlim = c(0,200))

我怎样才能将这两个条形图放在一个图形/图表中,如下所示:

在此处输入图像描述

第二个问题:

我怎样才能用 ggplot2 正确地做到这一点?我试过了,但我总是失败:

ggplot(dat_failpass, aes = (x = fail, fill = "red")+
geom_bar(position = "dodge")+
coord_flip()

有人可以回答我这两个问题,或者你能给我任何提示吗?我是新手。

谢谢你。

标签: rggplot2

解决方案


由于您只需要向量“Fail”和“Pass”值的第一个值,因此此代码块必须绘制您想要的内容:

library(ggplot2)

fail = c(3, 3, 3, 1)
pass = c(50, 40, 50, 10)
df = data.frame(value = c(fail[1], pass[1]), label = c('Fail', 'Pass'))

ggplot(df, aes(x = label, y = value)) +
  geom_bar(stat = 'identity', position = 'stack') +
  coord_flip() +
  labs(y = 'Count') +
  theme(axis.title.y = element_blank())

这是输出: 在此处输入图像描述

让我们知道此解决方案是否解决了您的问题。


推荐阅读