【发布时间】:2014-09-13 12:08:55
【问题描述】:
这基本上与这个问题相反:How to plot a graph using R, Java and 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();
}
对此的任何想法都非常感谢!
【问题讨论】:
-
你能给我们看看Java代码吗?
-
@YehoshahatSchellekens:用代码更新了我的问题!谢谢。
-
您的概念应该有效,尝试找出 Java 是否将“样本”数据正确传递给 R。类似的事情在这里工作正常:stackoverflow.com/questions/24493113/…,我认为您可能对方向有一些问题的“\”,因为它在 R 中是相反的
-
似乎适用于 png/jpg,但不适用于 pdf/postscript 设备。可能是系统问题:我正在运行 Ubuntu 14.04 / R 3.0.2。