R 如何在ggplot中使用facet将两个类别与整个类别进行比较
Hi希望使用facet_grid或facet_wrap或ggplot中的其他函数将两个类别与整个类别进行比较。例如,我想将第三和第四医院的统计数据与整个医院进行比较R 如何在ggplot中使用facet将两个类别与整个类别进行比较,r,ggplot2,gridview,facet,R,Ggplot2,Gridview,Facet,Hi希望使用facet_grid或facet_wrap或ggplot中的其他函数将两个类别与整个类别进行比较。例如,我想将第三和第四医院的统计数据与整个医院进行比较 Hospital<-c("Hosp1","Hosp1","Hosp1","Hosp1","Hosp1", "Hosp2","Hosp2","Hosp2&q
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()
Hospital如果您的数据不太大,可以通过一种方式将数据帧绑定在一起,添加另一列来指示数据集(或医院),然后使用facet进行打印:
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")
基于gghighlight
图书馆(GG2)
图书馆(dplyr)
数据全部%
突变(Hospital=“Hosp_all”)%%>%
按(疾病)分组%>%
总结(总计=n()
数据%>%
过滤器(医院%c(“Hosp3”、“Hosp4”))%>%
ggplot(aes(x=疾病,填充=疾病))+
geom_col(数据=全部数据,不良事件(疾病,总数),fill=“gray80”)+
geom_bar()+
coord_flip()+
小平面包裹(~医院)+
主题(legend.position=“底部”)
由(v0.3.0)于2020-06-23创建的数据集有点大,超过700万行。这是个好主意,但不幸的是,我的真实数据中有1000多家医院。您确定要在一个图形中比较所有医院吗?你最好将所有医院的每一种疾病在不同的疾病基础上进行比较。我想看看两家医院(我的interest医院)的疾病状况是否与国家状况不同(这是包括我感兴趣的医院在内的一千多家医院的疾病状况)因此,如果我理解正确,您只想将两个单独医院的疾病概况与所有(1000)其他医院的分组概况进行比较?好的,我修改了答案,将切面限制在您感兴趣的两个医院,并为“所有”医院添加了第二个背景栏。看看你怎么想。
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")