r - 用于条形图的 for 循环更改 par(mfrow) 和标题位置
问题描述
对于报告,我按组汇总数据。由于版权问题,我在下面创建了一些虚拟数据(第一个列是组,然后是值):
X A B C D
1 1 12 0 12 0
2 2 24 0 15 0
3 3 56 0 48 0
4 4 89 0 96 0
5 5 13 3 65 0
6 6 11 16 0 0
7 7 25 19 0 0
8 8 24 98 0 0
9 9 18 111 0 0
10 10 173 125 0 0
11 11 10 65 0 0
我想用一个循环为每个组(1:11)创建一个条形图:
for(i in 1:11){x<-dummyloop[i,]
barplot(as.matrix(x), main=paste("Group", i), ylim=c(0,200))}
这行得通,我为每个循环得到一个条形图,但是它们最终在一个 4 中通过用于绘制窗口,就好像我使用了 par(mfrow=c(4,4)) 一样。我需要单独的条形图。
所以我使用了 par(mfrow=c(1,1)),它出于某种原因解决了这个问题(我不使用 par EVER,因为我只导出具有单个图表的科学报告),但是“主要”在顶部被切断。
我还希望每个条都具有不同的颜色,所以我使用了:
for(i in 1:11){x<-dummyloop[i,]
barplot(as.matrix(x), main=paste("Group", i), col=c(1:5),
ylim=c(0,200))}
意识到着色向量然后只使用第一种颜色,我尝试了这个的变体:
for(i in 1:11){x<-dummyloop[i,]
barplot(as.matrix(x), main=paste("Group", i), col=c(4:10)[1:ncol(x)],
ylim=c(0,200))}
这不成功...
我似乎在 for 循环中遗漏了一些关键细节,感谢您的帮助。感谢这里的人们,我是一名 R 新手,每天都在进步;)。
解决方案
不知道,为什么那是在基础情节中。这是另一种方法ggplot2
。
for(i in 1:11){x<- gather(data[i,])
print(ggplot(data = x, aes(x = key, y = value, fill = cols)) +
geom_bar(stat = "identity", show.legend = FALSE) +
ggtitle(paste("Group ", i)) + theme(plot.title = element_text(hjust = 0.5)) +
ylim(0,200))
}
那你的main
还断了吗?
然后扩展绘图顶部的边距。执行:
par(mar = c(2, 2, 3 , 2)) # c(bottom, left, top, right)
作图之前。dev.off()
您可以在试验时重置您的规格。
推荐阅读
- python - 努力在 Python 中插入饼图
- python - Django中存储在不同数据库中的模型之间可能存在关系吗?
- python - Python 函数仅返回 0
- google-sheets - Google 表格:使用命名范围的 VLOOKUP 失败
- swift - SwiftUI 文本字段中的可选链接绑定值
- oracle - 如何在 Oracle Apex 中使用自定义身份验证分配用户后登录应用程序
- c - 有一种简单的方法可以可视化和修改 txt 文件吗?
- flutter - 无法无条件调用方法“[]”,因为接收者可以为“null”。无法解决此问题
- python - 如何将代码的输出保存到文本文件以进行日志记录(python)
- node.js - 如何清除聊天节点 JS 电报机器人 (node-telegram-bot-api.)