首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Rcaller在窗口中显示数据帧

如何使用Rcaller在窗口中显示数据帧
EN

Stack Overflow用户
提问于 2016-07-20 01:36:12
回答 1查看 249关注 0票数 0

我正在尝试使用java中的Rcaller库在文件中显示数据帧。但它似乎不起作用。下面的代码就是我想要做的:

代码语言:javascript
复制
   RCaller caller = new RCaller();
   RCode code = new RCode(); 
   code.addRCode("a=table(data$rate, predArbreDecision)");  


   File file = code.startPlot();
   code.addRCode("as.data.frame.matrix(a)");
   caller.runOnly();
   ImageIcon ii = code.getPlot(file);
   code.showPlot(file);
EN

回答 1

Stack Overflow用户

发布于 2016-09-05 19:20:24

在RCaller中,方法startPlot()endPlot()的工作原理与R中的对应方法类似,如用于启动文件设备的png()、pdf()、bmp()和用于完成绘图的dev.off()

在使用startPlot()之后,您应该使用R的图形函数绘制一些内容。

这个非常基本的例子将给出一个使用RCaller生成绘图的想法:

代码语言:javascript
复制
  double[] numbers = new double[]{1, 4, 3, 5, 6, 10};

  code.addDoubleArray("x", numbers);

  File file = code.startPlot();
  System.out.println("Plot will be saved to : " + file);

  code.addRCode("plot(x, pch=19)");

  code.endPlot();

此示例创建一个由值1、4、3、5、6、10组成的双精度数组,并使用addDoubleArray方法将它们传递给R。方法startPlot返回一个文件对象,该对象可能是在临时目录中创建的。通常的R表达式

代码语言:javascript
复制
plot(x, pch=19)

绘制一个图,但这次不是在屏幕上,而是在startPlot().方法生成的文件中

在调用方法endPlot()之后,我们可以通过调用

代码语言:javascript
复制
caller.runOnly();

因此,所有指令都被转换为R代码并传递给R。现在我们可以用Java显示内容:

代码语言:javascript
复制
code.showPlot(file);

下面是整个示例:

代码语言:javascript
复制
try {
  RCaller caller = RCaller.create();

  RCode code = RCode.create();


  double[] numbers = new double[]{1, 4, 3, 5, 6, 10};

  code.addDoubleArray("x", numbers);
  File file = code.startPlot();
  System.out.println("Plot will be saved to : " + file);
  code.addRCode("plot(x, pch=19)");
  code.endPlot();


  caller.setRCode(code);
  System.out.println(code.getCode().toString());

  caller.runOnly();
  code.showPlot(file);
} catch (Exception e) {
  Logger.getLogger(SimplePlot.class.getName()).log(Level.SEVERE, e.getMessage());
}

您可以查看此处给出的示例的链接,并进一步阅读:

Basic plotting using RCaller

Journal research paper

Unpublished research paper for RCaller 3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38465052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档