【发布时间】:2016-03-15 17:12:16
【问题描述】:
在我的数据中,我有多个国家/地区,每个国家/地区有 5 种产品。我对每个组合进行了回归,现在我尝试在同一图表上绘制每个组合的预测值与实际值。
我总共有 10 个国家/地区,每个国家/地区在 Excel 文件中都有自己的选项卡。由于有 5 个产品,因此总共有 50 个图表。 我想在 R 中绘制图形并将它们循环导出到 Excel。我正在使用 excel.link 包 ggplot 并且我遇到的问题是图表在 Excel 中显示为空白,或者如果 R 中有一些图表 - 那出现图表而不是所需的图表。
**注意:我曾经在第一张图上出现“未找到 rversion”的错误,但现在我更新了我的 RStudio,我不再收到此错误。图表仍会导出为空白或显示上一个图表
这是一个简化的循环,类似于我的代码中的循环。如果我手动运行循环,每次更改i,一切都可以导出。如果我运行for loop,就会出现我上面描述的问题:
require(excel.link)
set.seed(124)
for(i in 1:5){
# i <- 2
myseq <- seq(1,100, by=1)
norm <- rnorm(100)
mydata <- as.data.frame(cbind(myseq, norm))
colnames(mydata)
ggplot(data = mydata, aes(x=myseq, y=norm, group=1)) + geom_line(size=1, col="blue") +
ggtitle(paste("My Plot ", i))
y.plot=current.graphics()
xl[a1] = list(y.plot)
}
【问题讨论】:
-
您是否尝试过制作图 1 和图 2 的简化示例?很难弄清楚图 1 在所有真实世界细节中哪里出了问题。也许将其缩减为只有一个国家、一种产品和一个超级简单的数据集。无论如何,我的第一个想法是,图 1 可能根本没有生成绘图,它与
excel.link无关。您是否已成功将绘图导出为 png? -
我创建了一个简单的代码,但遇到了同样的问题。如果我尝试手动循环(更改 i 5 次),一切正常 - 我将正确的绘图粘贴到 Excel 中。当我运行 for 循环时,它不起作用。
for(i in 1:5){# i <- 2myseq <- seq(1,100, by=1)norm <- rnorm(100)mydata <- as.data.frame(cbind(myseq, norm))colnames(mydata)ggplot(data = mydata, aes(x=myseq, y=norm, group=1)) + ``geom_line(size=1, col="blue") +ggtitle(paste("My Plot ", i))ggtitle(paste("My Plot ", i))y.plot=current.graphics()xl[a1] = list(y.plot)} -
如果您使用重现问题的最简单示例提出问题,我们会更容易提供帮助。例如,我很难将您评论中的代码连接到您问题中的代码。如果它与
for循环有关,则可能有一个与所有其他细节无关的简单解决方案。您能否将问题修改为更简单? -
我更改了我的描述和代码示例,我认为
ggplot和current.graphics()在循环中存在一些问题 - 因为它输出空白或作为以前的图表,但不知道如何修复它
标签: r excel plot graph ggplot2