2017-03-29 46 views
3

我正在尝试制作堆积条形图,其中一些条形图出现黑色边框,而其他条形图则没有。为了达到这个目的,我根据变量选择来设置颜色。如果这是真的,边界是黑色的,否则它是透明的。堆积条形图中的边界正在由条形图加上

问题:当第一个栏杆有边框时,边框的右边缘会被第二个栏杆打上。

这里是我的代码和问题的图像:

#Sample Data 
    Var1 <- rep(c("A1","A2"),4) 
    Var2 <- c("Q1","Q1","Q2","Q2","Q3","Q3","Q4","Q4") 
    Freq <- c(4,2,6,2,6,4,9,3) 
    choose <- c(F,F,T,F,F,T,F,T) 

    df <- as.data.frame(cbind(Var1,Var2, Freq,choose)) 


    g<- ggplot(df, aes(x=factor(Var2), y=Freq))+ 
     geom_bar(stat="identity", aes(fill = Var1, color = choose), size = 3) + 
     scale_color_manual(values = c('FALSE' = 'transparent', 'TRUE' = 'black'))+ 
     coord_flip() 

    g 

Problem

我试图修复它,用填充杆后绘制边界= NA,这并绘制寄宿生在酒吧顶部,但不在正确的位置。

g<- ggplot(df, aes(x=factor(Var2), y=Freq))+ 
     scale_color_manual(values = c('FALSE' = 'transparent', 'TRUE' = 'black'))+ 
     geom_bar(stat="identity", aes(fill = Var1))+ 
     geom_bar(stat="identity", aes(color = choose), fill = NA, size = 3)+ 
     coord_flip() 

    g 

Problem fix

任何想法如何解决这一问题?

+0

您可以在第二个'geom_bar'中添加'group = Var1',这样事情就可以正确堆叠。 – aosmith

+0

这解决了这个问题。非常感谢你!你能写一个答案吗?然后我会将问题标记为已解决。 – Martin

回答

2

地图Var1group美学让东西堆积在你的第二个geom_bar

ggplot(df, aes(x=factor(Var2), y=Freq))+ 
    scale_color_manual(values = c('FALSE' = 'transparent', 'TRUE' = 'black'))+ 
    geom_bar(stat="identity", aes(fill = Var1))+ 
    geom_bar(stat="identity", aes(color = choose, group = Var1), fill = NA, size = 3)+ 
    coord_flip()