Hi想用facet_grid或facet_wrap或ggplot中的另一个函数将两个类别与整个类别进行比较。例如,我想将第3和第4医院的统计数字与整个医院进行比较。
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标签,因为它占用了大量的空间。
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)

发布于 2020-06-23 21:52:09
如果数据不太大,一种将数据帧绑定在一起的方法,添加另一列指示数据集(或医院),然后用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")

https://stackoverflow.com/questions/62544175
复制相似问题