我正在尝试在R中绘制定性策略分析数据。我的数据库中每个策略都有一行,然后是二进制变量的列,如果满足该条件,则将条件编码为“ 1”。最后,每一行还包含一栏,说明该政策是强制性,自愿性还是部分性。
我想创建一个对各列求和的条形图,然后根据总和的百分比是强制性,自愿性还是部分性在条形中着色。
理想的结果是创建一个如下所示的条形图,但根据强制性,自愿性或部分性政策的比例按颜色进行编码
以下是某些格式相同的示例数据:
df<- data.frame(ID=c(1,2,3,4,5,6),
policy=c("Policy A", "Policy B", "Policy C", "Policy D",
"Policy E","Policy F" ),
Data_collection= c(1, 0, 0, 1, 1, 0),
Handling_release= c(0, 1, 0, 1, 0, 1),
Gear_modification= c(1, 0, 0, 1, 1, 0),
Stength=c("M", "V", "M", "P", "P", "M"),
stringsAsFactors=FALSE)
看来,您确实确实需要将数据重整为适当的整齐格式,以使打印更加容易。例如,您可以这样做
library(dplyr)
library(tidyr)
library(ggplot2)
df %>%
pivot_longer(Data_collection:Gear_modification) %>%
filter(value==1) %>%
ggplot(aes(name, fill=Stength)) +
geom_bar()
对于提供的示例数据,此给出
要在顶部添加总数,请参见此现有问题:draw the sum value above the stacked bar in ggplot2