如何更改 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_area
和 geom_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 轴线上。
我正在尝试使用下面的代码用 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_area
和 geom_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 轴线上。