如何更改 ggplot 中图形的格式以组合 geom_col 和 geom_surface

how to change the format of graphique in ggplot to combine geom_col and geom_surface

我正在尝试使用下面的代码用 ggplot 绘制我的数据框

p1 <- ggplot(dates2, aes(x=periode_ap, y=pourcentage_parc, fill=apport))+
        geom_col(position = position_stack(reverse = TRUE))+
        ylim(0,100)+
        scale_fill_manual(values=mycolors, name="")+
        theme_light()

我得到这张图 但我想要的是这个 ::

请问我如何更改我的代码以获得正确的图形!!!或者我必须使用另一个包而不是 ggplot 来做到这一点!!

如果您 post 您的数据,我们可以使用它。否则,这里有一个应该起作用的例子。将 geom_areageom_line 与您的数据结合使用,并分别为每个调整 fill=color= 美学。

df <- data.frame(
  x=c(4,5,6,7,8:15,10,11,12,12,13,14,15),
  y=c(0,100,0,0,20,20,40,10,10,10,10,0,0,50,0,0,60,60,0),
  id=c(rep('Big Peak',3), rep('Other Thing',9),rep('Another Item',3),rep('At the end',4))
)

ggplot(df, aes(x,y)) + theme_bw() + xlim(0,20) +
  geom_area(aes(fill=id), alpha=0.2, position='identity') +
  geom_line(aes(color=id), size=0.8) +
  scale_y_continuous(expand=expansion(c(0,0.22))) +
  theme(legend.position=c(0.8,0.8), legend.background = element_rect(color='black'))

一个潜在的重要美学是将 scale_y_continuous 扩展调整为 0 作为底部限制,以避免那里出现空白。否则,您的区域几何将 "floating" 在 x 轴线上。