首页 > 解决方案 > 如何使用 RCaller 将 RPlot 转换为 Java?

问题描述

我正在尝试使用 RCaller 将 RPlot 转换为 Java,但低于异常。任何人都可以帮我解决它。谢谢 :) ...

     Globals.R_current = "/usr/local/bin/R";
     Globals.Rscript_current= "/usr/local/bin/Rscript";
    
     RCode code = RCode.create();

     RCaller caller = RCaller.create(code, 
     RCallerOptions.create(Globals.Rscript_current, Globals.R_current, 
     FailurePolicy.RETRY_5, 9223372036854775807L, 100L, 
     RProcessStartUpOptions.create())); 

     caller.setRCode(code);
     
     code.addRCode("volume_ts <- ts(data$volume,start = c(2017,11),frequency = 12)");
     code.addRCode("volume <-subset(volume_ts,end=26)");
     code.addRCode("real <- subset(volume_ts, start = 27)");
     code.addRCode("arima <- auto.arima(volume)");
     code.addRCode("estimate <- forecast(arima,h=15)");
     code.addRCode("ds <- data.frame(estimate)");
     code.addRCode("fpoint <- ds$Point.Forecast");
     code.addRCode("autoplot(estimate)+autolayer(real)");
     code.endPlot();
     
     File file = code.startPlot();
     caller.runOnly();
     ImageIcon i=code.getPlot(file);
     code.showPlot(file);

...

低于异常:

      Exception in thread "main" java.awt.HeadlessException
      at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
      at java.awt.Window.<init>(Window.java:536)
      at java.awt.Frame.<init>(Frame.java:420)
      at java.awt.Frame.<init>(Frame.java:385)
      at javax.swing.JFrame.<init>(JFrame.java:189)
      at com.github.rcaller.rstuff.RPlotViewer.<init>(RPlotViewer.java:49)
      at com.github.rcaller.rstuff.RCode.showPlot(RCode.java:227)

标签: javar

解决方案


推荐阅读