R中的堆叠栏ggplot2

问题描述

我有一个这样的表: <Text />的数据

dput

我想创建一个堆叠的柱状图,以显示Dead,Recovered和On处理的百分比,其中2个柱为northern_countries和Southern_countries。

我一直在搜索,但找不到答案:(另外,我刚开始使用R,所以请您能详细说明一下内容吧。

非常感谢xoxo

解决方法

使用ggplot2:

df是您数据框的名称,首先您需要使用pivot_longer()包中的tidyr将其转换为长格式:

df <- tidyr::pivot_longer(df,cols=-1)

Obs:-1不会将第一行转换为long。然后它应该看起来像这样(抱歉,质量不好):

enter image description here

因此,我们希望x轴上的name列(其中每个值一个条形),y里的value列,每个条形的颜色应除以status,因此我们将其传递给fill

library(ggplot2)

ggplot(df,aes(x=name,y=value,fill=status) + geom_col()