r - 如何绘制多个模型中变量分数的百分比
问题描述
我是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")
解决方案
这与上面的答案几乎相同。但是,如果您有大量模型,请使用包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")
推荐阅读
- mongodb - MongoDB:在“插入”后通过“_id”“查找”文档是否有意义?
- c - 使用递归删除链表中所有出现的数字
- android - Android 工作资料应用程序:如何推送和拉取数据
- apache-spark - 避免在 pyspark 中对多个连接进行洗牌和长期计划
- python-3.x - 动态列 .withColumn Python DataFrame
- java - 在 Camel-Kafka 中创建并发 Kafka 消费者
- python - 如何在 PySpark 中将字典转换为数据框?
- django - 如何安全地发布我的 django 网站(访问者读取后端代码的安全性)
- javascript - iOS 13.4 上的 deviceMotion rotationRate 为空
- python - 用字典中的值替换列表中的元素