Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在ggplot中使用facet将两个类别与整个类别进行比较_R_Ggplot2_Gridview_Facet - Fatal编程技术网

R 如何在ggplot中使用facet将两个类别与整个类别进行比较

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

Hi希望使用facet_grid或facet_wrap或ggplot中的其他函数将两个类别与整个类别进行比较。例如,我想将第三和第四医院的统计数据与整个医院进行比较

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")