我正在尝试制作一个堆叠条形图,在其中一些条形上加上黑色边框,而其他的则没有。为了实现这个目标,我根据变量choose设置颜色。当它为true时,边框是黑色的,否则是透明的。
问题在于:当第一个条形有边框时,边框的右侧会被第二个条形覆盖。
以下是我的代码和问题的图像:
#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
我试图通过在fill = 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
有什么想法可以解决这个问题吗?
geom_bar
中添加group = Var1
,这样就可以正确地堆叠事物了。 - aosmith