这基本上与这个问题相反:如何使用 R、Java 和 JRI 绘制图形?. 我想从 Java 程序在 R 中创建一个绘图并将其存储在硬盘上。这与在 Java 窗口中显示 R 图无关。我使用 JRE 作为 rJava 包的一部分。从 Java 在 R 中执行计算工作得很好。
在 R 中执行这个会产生一个很好的情节:
pdf(file="qqplot.pdf")
x <- rnorm(100)
qqnorm(x); qqline(x)
dev.off()
尽管如此,从 Java 执行相同的操作会产生相同的文件,但它是空的。这是java代码:
private String createNormQQPlot(double[] samples, File filename){
try{
// Pass array to R
engine.assign("samples", samples);
engine.eval(String.format("pdf(file='%s')",filename.getPath()));
engine.eval("qqnorm(samples)");
engine.eval("qqline(samples)");
engine.eval("dev.off()");
}catch(Exception e) {
e.printStackTrace();
return "";
}
return filename.getPath();
}
对此的任何想法都非常感谢!