这基本上与这个问题相反: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();
}
对此有任何想法都非常感谢!
答案 0 :(得分:1)
如果您使用某些Linux版本(例如Ubuntu),解决方案是使用pdf
代替cairo_pdf(file="qqplot.pdf")
x <- rnorm(100)
qqnorm(x); qqline(x)
dev.off()
:
new = []
for l in myList:
new.append([x.split(',') for x in l])
print new
此处记录的此方法存在缺陷:R: Cairographics-based SVG, PDF and PostScript Graphics Devices,但至少会产生非空的pdf文件。