java - 使用 Java、R 和 JavaGD 绘制多个图形时出现问题?

标签 java r rjava

我已经使用 Java、JavaGD 和 R 成功绘制了一个图形。我关注了 this教程。

现在,我有一个 R 脚本,它读取 CSV 文件并进行一些计算。最后,它绘制了 8 个不同的图形。当我使用 Java/JavaGD 运行此脚本时,只有第一个和第八个图是可见的。第二到第七个是“非 Activity ”窗口,它们是空白的。我使用的代码与上述链接/教程中的代码完全相同。所以我猜有些东西被覆盖了。

如何在适当的窗口上绘制它们?此外,如果重新调整大小,第一个窗口将变为空白。如何解决这个问题?

如有需要,请随时要求澄清。我不确定我对问题的解释有多好。

非常感谢任何帮助/阅读 Material 。

更新 1:

目前,我正在使用这段代码:

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Rengine re;
    String[] dummyArgs = new String[1];
    dummyArgs[0] = "--vanilla";
    re = new Rengine(dummyArgs, false, null);
    re.eval("library(JavaGD)");

    // This is the critical line: Here, we tell R that the JavaGD() device that
    // it is supposed to draw to is implemented in the class MyJavaGD. If it were
    // in a package (say, my.package), this should be set to
    // my/package/MyJavaGD1.
    re.eval("Sys.putenv('JAVAGD_CLASS_NAME'='test/MyJavaGD1')");

    re.eval("JavaGD()");
//      re.eval("plot(c(1,5,3,8,5), type='l', col=2)");
//      re.eval("source(\"C:\\Documents and Settings\\username\\My Documents\\Test Data\\BoxPlot.r\");");
        re.eval("source(\"C:\\\\Documents and Settings\\\\username\\\\My Documents\\\\sampleRScript.R\")");
        re.end();
        System.out.println("Done!");
    }

部分脚本:

par(las=2,mfrow=c(2,1))
PlotData <- subset (m4, select=c(LotNo,def,cavity,Lift), subset=(cavity=="1"))
boxplot(Lift ~ def, data=PlotData, main="Number 1")
hist(PlotData$Lift,50, main="", xlab="Lift", ylab="Frequency")
win.graph()
par(las=2,mfrow=c(2,1))
PlotData <- subset (m4, select=c(LotNo,def,cavity,Lift), subset=(cavity=="2"))
boxplot(Lift ~ def, data=PlotData, main="Number 2")
hist(PlotData$Lift,50, main="", xlab="Lift", ylab="Frequency")
win.graph()
par(las=2,mfrow=c(2,1))
PlotData <- subset (m4, select=c(LotNo,def,cavity,Lift), subset=(cavity=="3"))
boxplot(Lift ~ def, data=PlotData, main="Number 3")
hist(PlotData$Lift,50, main="", xlab="Lift", ylab="Frequency")
.
.
.

最佳答案

您需要使用 .jengine() 将已初始化的 JRI 告知 R 实例,否则它无法发出回调,例如调整窗口大小。至于空白窗口,您需要提供您使用的代码。

(您可能想使用 stats-rosuda-devel 在那里讨论与 rJava/JRI/JavaGD 相关的问题。)

关于java - 使用 Java、R 和 JavaGD 绘制多个图形时出现问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8718816/

相关文章:

javascript - 在 Shiny 的导航栏应用程序中单击按钮更改标题

R - 错误 : . onLoad 在 loadNamespace() 中失败 'rJava'

java - 无法让 Sprite 与 map 图像碰撞(java)

r - 提取R中字符之间的数字

Java:如何检查世界上是否存在某个对象的特定实例?

R生成带有空格的标签

r - 无法在R中安装rJava软件包,出现错误 “bootstrap class path not set in conjunction with -source 1.4”

java - 在 RStudio 中使用 RWeka M5P 会产生 java.lang.NoClassDefFoundError : no/uib/cipr/matrix/Matrix

java - 如何在java api elasticsearch客户端中使用matchQuery

java - 如何从 JSNI 调用 Dll 方法以在 GWT Web 应用程序中使用?