R 在具有2x geom_col的绘图中,使用相同填充变量的绘图值彼此相邻

R 在具有2x geom_col的绘图中,使用相同填充变量的绘图值彼此相邻,r,ggplot2,geom-col,R,Ggplot2,Geom Col,我有一个数据集,我想在条形图中绘制。它由一个x变量、两个显示百分比的y变量和一个给出变量不同特征(如a、B和C)的变量组成。同一x上所有y变量之和为100% 我为数据框构建了一个示例: x <- c(0,0,0,50,50,50,100,100,100) y1 <- c(40,30,5,60,10,5,65,5,5) y2 <- c(10,10,5,10,10,5,10,10,5) AB <- c('B','A','C','B','A','C','B','A','C')

我有一个数据集,我想在条形图中绘制。它由一个x变量、两个显示百分比的y变量和一个给出变量不同特征(如a、B和C)的变量组成。同一x上所有y变量之和为100%

我为数据框构建了一个示例:

x <- c(0,0,0,50,50,50,100,100,100)
y1 <- c(40,30,5,60,10,5,65,5,5)
y2 <- c(10,10,5,10,10,5,10,10,5)
AB <- c('B','A','C','B','A','C','B','A','C')
test <- data.frame(x,y1,y2,AB)

x我想这就是你要找的。另一个答案可以在这里找到:


x我想这就是你要找的。另一个答案可以在这里找到:


x我在秒数填充后添加了
alpha=0.5
。这样,它完全解决了我的问题。我在秒数填充后添加了
alpha=0.5
。这样就完全解决了我的问题。
p <- ggplot(test,aes(x=x, group=x)) +
  geom_col(aes(y=y1,fill=AB)) +
  geom_col(aes(y=y2,fill=AB)) +
  scale_fill_manual(values = alpha(c("darkred","darkgreen","blue"),0.6)) +
  coord_flip()
p
x <- c(0,0,0,50,50,50,100,100,100)
y1 <- c(40,30,5,60,10,5,65,5,5)
y2 <- c(10,10,5,10,10,5,10,10,5)
AB <- c('B','A','C','B','A','C','B','A','C')
test <- data.frame(x,y1,y2,AB)


barwidth = 20

ggplot(test) +
  geom_bar(mapping =  aes(x = x - barwidth/2, y= y1, fill = AB),
           stat = "identity",
           position = "stack",
           width = barwidth)+
  geom_bar(mapping =  aes(x = x + barwidth/2 + 1, y= y2, fill = AB),
           stat = "identity",
           position = "stack",
           width = barwidth)+
  scale_x_continuous(breaks = c(0,50,100))+
  scale_fill_manual(values = alpha(c("darkred","darkgreen","blue"),0.6)) +
  coord_flip()+
  labs(x = "x")+
  theme_minimal()