我有这个数据框架,我想用不同的单个患者数据对期望的列进行分组。我写的代码,但它只适用于一个病人。我想为14个病人做这件事。如图所示,这张图是针对一个患者的,我必须为所有患者显示相似的组。目前我有两个病人的数据。因此,我必须标记14个患者的x轴,但将图留空。

。

c<- data.frame(Var=character(),
Expected=double(),
Pat_1=double(),
Pat_2=double(),
stringsAsFactors=FALSE)
x<-data.frame("IT-6",2,4,3)
names(x)<-c('Var','Expected','Pat_1','Pat_2')
c<-rbind(c,x)
x<-data.frame("IT-7",3,2,8)
names(x)<-c('Var','Expected','Pat_1','Pat_2')
c<-rbind(c,x)
x<-data.frame("IT-8",4,2,7)
names(x)<-c('Var','Expected','Pat_1','Pat_2')
c<-rbind(c,x)
c_melt<-melt(c, id = c("Var"))
c_melt<-dplyr::rename(c_melt,"Patient"="variable")
c_melt$col<-ifelse(grepl("Expected", c_melt$Patient),"gray88","grey60")
> c_melt
Var Patient value col
1 IT-6 Expected 2 gray88
2 IT-7 Expected 3 gray88
3 IT-8 Expected 4 gray88
4 IT-6 Pat_1 4 grey60
5 IT-7 Pat_1 2 grey60
6 IT-8 Pat_1 2 grey60
7 IT-6 Pat_2 3 grey60
8 IT-7 Pat_2 8 grey60
9 IT-8 Pat_2 7 grey60
ggplot(data=c_melt,aes(x=Var,y=value,fill=col))+
geom_bar(stat="identity", na.rm = T,position="dodge")+
labs(y="Display(%)",x="")+
theme(axis.title.x = element_blank(),
axis.text.x = element_text(size=12,angle=0,vjust = 0.5,face = c( 'bold')),
panel.grid.major.x = element_blank(),
panel.grid.minor.x = element_blank())+
theme(axis.ticks=element_line(colour = "black"),
panel.border = element_rect(colour = "black", fill=NA, size=0.5),
panel.background = element_blank(),
axis.title.y = element_text(size=15,angle=0,vjust = 0.5),
axis.text.y=element_text(size=12,angle=0,vjust = 0.5))+
theme(legend.position = "none")+
scale_fill_identity()发布于 2020-11-03 04:25:05
也许你可以试试facet_wrap
ggplot(data=c_melt,aes(x=Var,y=value,fill=col))+
geom_bar(stat="identity", na.rm = T,position="dodge")+
facet_wrap(~Patient) +https://stackoverflow.com/questions/64652737
复制相似问题