首页 > 解决方案 > 如何绘制多个模型中变量分数的百分比

问题描述

我是R的新手。现在我这里有三个数据框:model1、model2、model3。在每个数据框中,有三个变量及其对应的分数。现在想画一个堆积条形图,纵坐标是三个变量:A1、A2、A3。横坐标是三个数据框的名称:model1、model2、model3。图表中的条形填充根据每个变量得分的比例从浅到深填充颜色。这是我的三个数据框。我该怎么做才能得到我想要的条形图?

c1 <- c("A1","A2","A3")
c2 <- c(2,5,1)
c3 <- c(3,4,1)
c4 <- c(6,8,2)
model1<-data.frame(c1,c2)
colnames(model1)<-c("variable","score")
model2<-data.frame(c1,c3)
colnames(model2)<-c("variable","score")
model3<-data.frame(c1,c4)
colnames(model3)<-c("variable","score")

标签: r

解决方案


这与上面的答案几乎相同。但是,如果您有大量模型,请使用包gdata来组合这些模型,而无需每次都显式创建带有数据名称的列

library(gdata)  
combine(model1, model2, model3)

  variable score source
1       A1     2 model1
2       A2     5 model1
3       A3     1 model1
4       A1     3 model2
5       A2     4 model2
6       A3     1 model2
7       A1     6 model3
8       A2     8 model3
9       A3     2 model3

此后,您可以轻松地在 ggplot2 中创建堆积条形图

combine(model1, model2, model3) %>% ggplot() +
  geom_col(aes(x = source, y = score, color = variable), fill = 'grey', position = "dodge")

在此处输入图像描述


推荐阅读