我编写了一些代码,从文本文件中读取一些数据,将其转换为矩阵,并在单独的图形中绘制矩阵的每一列:
#Read data from txt file into table and convert table into matrix
excMatrix = as.matrix(read.table("/Users/Kane/Desktop/Gujarati/Table 1.3.txt", header = TRUE, row.names = 1))
#Plotting function
excPlot = function(x) {
plot(row.names(excMatrix),x,xlab = "Year", ylab = "Exchange rate (US)", type = "l")
legend("topright", legend = "something to get column names for legend", pch = 1, col = 1:2, bty = "n")
}
#Plot exchange rates from various countries on seperate graphs
apply(excMatrix, 2, excPlot)
当我运行它时,它会生成正确的图形,但我无法弄清楚如何在图例中获取国家/地区的名称,即每个图形是一个单独国家/地区的数据,其名称是矩阵的列。
希望这是有道理的,任何帮助都会受到赞赏。
答案 0 :(得分:0)
重新排列绘图方法以循环遍历矩阵的colnames
将允许此操作。 E.g:
par(mfrow=c(2,2))
excMatrix <- matrix(1:20,ncol=4,dimnames=list(1:5,letters[1:4]))
excPlot = function(x) {
plot(row.names(excMatrix),excMatrix[,x],xlab = "Year",
ylab = "Exchange rate (US)", type = "l")
legend("topright",
legend = x,
pch = 1, col = 1:2, bty = "n")
}
lapply(colnames(excMatrix), excPlot)
答案 1 :(得分:0)
我建议使用par()
,就像@thelatemail指出的那样。请查看?par
。它有许多参数,如边距和大小,供你玩
如果每个图表的图例相同,则可以将legend()
代码放在excPlot
函数之外。
看一下stackoverflow上的这篇文章: