导出绘制变量显示空白图像

时间:2014-06-30 15:00:52

标签: r plot jri

我正在使用JRI进行java和R集成。 请在下面找到脚本

            String path = "C:\\Users\\hrpatel\\Desktop\\CSVs\\DataNVOCT.csv";
            rengine.eval("library(tseries)");
            rengine.eval(String.format("mydata <- read.csv('%s')",path.replace('\\', '/')));
            String exportFilePath= "C:\\Users\\hrpatel\\Desktop\\CSVs\\arima3.jpg";
            rengine.eval("Y <- NewVisits");
            rengine.eval("t <- Day.Index");
            rengine.eval("summary(Y)");
            rengine.eval("adf.test(Y, alternative='stationary')");
            rengine.eval("adf.test(Y, alternative='stationary', k=0)");
            rengine.eval("acf(Y)");
            rengine.eval("pacf(Y)");
            rengine.eval("mydata.arima101 <- arima(Y,order=c(1,0,1))");
            rengine.eval("mydata.pred1 <- predict(mydata.arima101, n.ahead=1000)");
            rengine.eval(String.format("jpeg('%s')",exportFilePath.replace('\\', '/')));
            rengine.eval("plot(t,Y)");
            rengine.eval("lines(mydata.pred1$pred, col='blue',size=10)");
            rengine.eval("lines(mydata.pred1$pred+1*mydata.pred1$se, col='red')");
            rengine.eval("lines(mydata.pred1$pred-1*mydata.pred1$se, col='red')");
            rengine.eval("dev.off()");

在上面的代码库中,当我尝试绘图(t,Y)或绘图(Y)时。它导出一个空白图像,而在情节(mydata)的情况下,它是工作文件。

当我在R中运行代码时,还有一件事就是创建图像(使用JRI显示空白图像)。

我花了1天时间来解决这个问题,但我没有找到任何解决方案。

如果您有任何其他选择,请建议。

需要你的帮助。

先谢谢

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你有一个名为 mydata 的数据集,它有两列, NewVisits Day.Index ,in那种情况你需要改变:

rengine.eval("Y <- NewVisits");

rengine.eval("Y <- mydata$NewVisits");

rengine.eval("t <- Day.Index");

rengine.eval("t <- mydata$Day.Index");

这也解释了为什么 plot(mydata)适合你 - 因为R识别它。

如果这不是解决方案,那么我无法看到你在哪里阅读 NewVisits Day.Index 来自

BTW我强烈建议使用ggplot

进行绘图