2017-03-29 79 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()