我想通过使用java的rcaller生成一个R boxplot。我的代码是:
try {
RCaller caller = new RCaller();
caller.setRExecutable("/usr/bin/R");
caller.setGraphicsTheme(new DefaultTheme());
RCode code = new RCode();
code.clear();
File file = code.startPlot();
code.addRCode("boxplot((1:10),main="1-10")");
System.out.println(code.toString());
code.endPlot();
caller.setRCode(code);
caller.runAndReturnResultOnline("boxplot(1:10),main="1-10"");
code.showPlot(file);
但是它不能在代码caller.runAndReturnResultOnline("boxplot(1:10),main="1-10"");
我尝试使用下面的代码,可以绘制一个R图。它们之间有什么区别?
try {
RCaller caller = new RCaller();
caller.setRExecutable("/usr/bin/R");
caller.setGraphicsTheme(new DefaultTheme());
RCode code = new RCode();
code.clear();
double[] numbers = new double[] { 1, 4, 4, 5, 6, 10 };
code.addDoubleArray("x", numbers);
File file = code.startPlot();
System.out.println(file.toString());
code.addRCode("plot.ts(x)");
System.out.println(code.toString());
code.endPlot();
caller.setRCode(code);
caller.runAndReturnResultOnline("plot.ts(x)");
code.showPlot(file);
换行:
code.addRCode("boxplot((1:10),main="1-10")");
By this:
code.addRCode("boxplot(c(1:10),main='1-10')");
或者像第二个例子(工作的那个)一样,您可以从java中给出x向量并替换这一行:
caller.runAndReturnResultOnline("plot.ts(x)");
caller.runAndReturnResultOnline("boxplot(x)");
PS:我不"java测试。