删除两个图例中的线条和背景

标签 r ggplot2 legend geom-bar

我做了这个情节:

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

enter image description here

关于删除两个图例中的线条和背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30119398/

相关文章:

r - dplyr:需要帮助返回每行中第一个非 NA 值的列索引

list - 生成每个列表项中项数的向量

r - `level` 如何用于在 geom_smooth 中生成置信区间?

r - 如何保留所有刻度线但删除 x 轴上的大部分网格线?

java - JFreeChart - 具有 2 个图例的颜色问题

r - 使用 R 识别字符串中连续出现的特定字母段

r - 是否可以向 RTextTools 包提供自定义停用词列表?

r - 在 R 中使用 ggplot2 改变梯度

text - 是否可以设置标签相对于 gnuplot 中的键的位置?

reporting-services - SSRS 根据条件隐藏图例中的项目