我做了这个情节:
#data
sal<-data.frame(x=factor(c(2,2,1,1),labels=c('House','Work')))
sal$id<-factor(c(2,1,2,1),labels=c('t0','t1'))
sal$val<-c(305,280,290,180)
sal$lim1<-c(75,75,150,150)
sal$lim2<-c(150,150,300,300)
#plot
p<-ggplot(sal,aes(id,y=val,fill=id))+
geom_bar(stat="identity",position="dodge",width=.75)+
scale_fill_brewer(palette='Set1',type='qual',name='Time')+
theme(axis.title.x=element_blank(),
axis.title.y=element_blank(),
panel.background=element_rect(fill="transparent",colour=NA),
panel.grid.minor=element_line(colour='grey',linetype=2),
panel.grid.major=element_line(colour='grey'),
plot.background=element_rect(fill="transparent",colour=NA),
axis.ticks=element_blank(),
axis.text.x=element_blank(),
legend.position='bottom')+
geom_hline(aes(yintercept=lim1,lty='lim1'),lwd=1,show_guide=T)+
geom_hline(aes(yintercept=lim2,lty='lim2'),lwd=1,show.guide=T)+
scale_linetype_manual(name="Recommendations",values=1:2,
labels=c('R1','R2'))
p+facet_grid(.~x)+theme(strip.background=element_rect(colour='white',fill='transparent'),
strip.text.x=element_text(size=15,face='bold'))
我需要擦除出现在颜色内部的
Time
图例中的行。同时,我希望 Recommendations
图例中有一个透明的背景。 最佳答案
您可以在代码中稍加修改并从@Henrik 获得帮助来尝试此操作
ggplot(sal,aes(x=id,y=val,fill=id))+
geom_bar(stat="identity",position="dodge",width=.75) +
scale_fill_brewer(palette='Set1',type='qual',name='Time')+
theme(axis.title.x=element_blank(),
axis.title.y=element_blank(),
panel.background=element_rect(fill="transparent",colour=NA),
panel.grid.minor=element_line(colour='grey',linetype=2),
panel.grid.major=element_line(colour='grey'),
plot.background=element_rect(fill="transparent",colour=NA),
axis.ticks=element_blank(),
axis.text.x=element_blank(),
legend.position='bottom')+
facet_grid(.~x)+theme(strip.background=element_rect(colour='white',fill='transparent'), strip.text.x=element_text(size=15,face='bold'))+
geom_hline(aes(yintercept=lim1,lty='lim1'),lwd=0,show_guide=T)+
geom_hline(aes(yintercept=lim2,lty='lim2'),lwd=0,show.guide=T)+
geom_hline(aes(yintercept=lim1,lty='lim1'),lwd=1,show_guide=T)+
geom_hline(aes(yintercept=lim2,lty='lim2'),lwd=1,show.guide=F)+
scale_linetype_manual(name="Recommendations",values=c(3,1), labels=c('R1','R2'))+
theme(legend.key = element_rect(fill = "transparent"))+
guides(fill = guide_legend(override.aes = list(linetype = 0)), color = guide_legend(override.aes = list(linetype = 0)))
#
关于删除两个图例中的线条和背景,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30119398/