首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用面图法比较两个类别与整个类别

如何用面图法比较两个类别与整个类别
EN

Stack Overflow用户
提问于 2020-06-23 21:39:05
回答 1查看 139关注 0票数 1

Hi想用facet_grid或facet_wrap或ggplot中的另一个函数将两个类别与整个类别进行比较。例如,我想将第3和第4医院的统计数字与整个医院进行比较。

代码语言:javascript
复制
Hospital<-c("Hosp1","Hosp1","Hosp1","Hosp1","Hosp1",
            "Hosp2","Hosp2","Hosp2","Hosp2","Hosp2",
            "Hosp3","Hosp3","Hosp3","Hosp3","Hosp3",
            "Hosp4","Hosp4","Hosp4","Hosp4","Hosp4")
Disease<-c("D1","D1","D2","D2","D3",
           "D1","D1","D1","D3","D3",
           "D3","D3","D2","D2","D3",
           "D1","D1","D2","D2","D2")

data<-data.frame(Hospital,Disease)

plot<-ggplot(data, aes(x=Disease,fill=Disease))+
  geom_bar()+facet_grid(~Hospital)+coord_flip()

使用facet_grid,我有一个比较四家医院的图表,我不想要。

我更希望在没有经过"grid.arrange“的情况下使用小面,因为我希望显示所有图形的所有疾病类别(即使它们是空的)(为了便于比较),而且我不希望为每个图显示x.axis标签,因为它占用了大量的空间。

代码语言:javascript
复制
wh<-ggplot(data, aes(x=Disease,fill=Disease))+
  geom_bar()+coord_flip()+labs(title = "whole hospital")

H3<-ggplot(data[data$Hospital=="Hosp3",], aes(x=Disease,
      fill=Disease))+ geom_bar()+coord_flip()+
  labs(title = "hospital3")

H4<-ggplot(data[data$Hospital=="Hosp4",], aes(x=Disease,
       fill=Disease))+ geom_bar()+coord_flip()+
  labs(title = "hospital4")

grid.arrange(wh,H3,H4,ncol=3)

EN

回答 1

Stack Overflow用户

发布于 2020-06-23 21:52:09

如果数据不太大,一种将数据帧绑定在一起的方法,添加另一列指示数据集(或医院),然后用facet绘图:

代码语言:javascript
复制
library(dplyr)
library(ggplot2)


rbind(data,subset(data,Hospital == "Hosp3"),subset(data,Hospital == "Hosp4")) %>%
mutate(hospital=rep(c("whole hospital","Hosp3","Hosp4"),
c(nrow(data),sum(data$Hospital == "Hosp3"),sum(data$Hospital == "Hosp4")))
) %>%
mutate(hospital=factor(hospital,levels=c("whole hospital","Hosp3","Hosp4"))) %>%
ggplot(aes(x=Disease,fill=Disease))+ geom_bar()+coord_flip()+
facet_wrap(~hospital,scale="free_y")

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62544175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档