在R中分别显示两组的条形图

时间:2014-03-18 16:51:14

标签: r bar-chart

我想在R中的水平条形图中为“是”和“否”列,用垂直线分隔为零:

dat <- matrix(c(10,8, 20, 6,0, 25), nrow=3, dimnames=list(c("A", "B", "C"), 
                                                          c("Yes", "No")  ))

类似的东西:

sample figure

其中蓝色表示“是”,黄色表示“否”组。你能帮我在R吗?

帮我做

1 个答案:

答案 0 :(得分:0)

喜欢这个吗?

dat <- data.frame(dat)
barplot(dat$Yes,horiz=T, xlim=c(-max(dat$No),max(dat$Yes)), col="lightgreen")
barplot(-dat$No,horiz=T, add=T, col="lightblue")

ggplot

相同

library(ggplot2)
gg <- cbind(id=rownames(dat),dat)
ggplot(gg, aes(x=id))+
  geom_bar(aes(y=Yes, fill="Yes"), stat="identity")+
  geom_bar(aes(y=-No, fill="No"),  stat="identity")+
  scale_fill_manual("Response",values=c(Yes="lightgreen",No="lightblue"))+
  labs(y="value")+coord_flip()