Экспорт графической переменной показывает пустое изображение

Я делаю Java и R интеграции с использованием JRI. Пожалуйста, найдите ниже сценарий

            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()");

В приведенной выше кодовой базе, когда я попробовал plot(t,Y) или plot(Y). он экспортирует чистое изображение, в то время как в случае сюжета (mydata) это рабочий файл.

Еще одна вещь, когда я запускаю над кодом в R, он создает изображение (с помощью JRI это показывает пустое изображение).

Я потратил 1 день, чтобы решить эту проблему, но я не нашел никакого решения.

Пожалуйста, предложите, если у вас есть какие-либо альтернативы.

Ваша помощь нужна.

Заранее спасибо

1 ответ

Решение

Если я правильно понимаю, у вас есть набор данных с именем mydata, который имеет два столбца, NewVisits и Day.Index, в этом случае вам нужно изменить:

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 из

Кстати, я настоятельно рекомендую построить с использованием ggplot пакет

Другие вопросы по тегам