我拼命试图让Java和gnuplot玩的很好。我开始使用JavaPlot并将jar添加到类路径(使用Eclipse)。

我还下载了gnuplot并将其放在安全的地方。

第一个问题,所有JavaPlot给出的示例都假设您已将gnuplot放在正确的位置,这是我不知道的地方。因此他们的例子:

import com.panayotis.gnuplot.JavaPlot;

public class test {
    public static void main(String[] args) {
        JavaPlot p = new JavaPlot();
        p.addPlot("sin(x)");
        p.plot();
    }
}


仅当将gnuplot添加到类路径中时,它才可能起作用以及如何产生任何想法?

不过不用担心,因为您可以在JavaPlot的构造函数中定义gnuplot的位置,如下所示:

import com.panayotis.gnuplot.JavaPlot;

public class test {
    public static void main(String[] args) {
        JavaPlot p = new JavaPlot("D:/Eclipse/gnuplot/binary/pgnuplot.exe");
        p.addPlot("sin(x)");
        p.plot();
    }
}


这可以做一些事情,如果您很快就能看到一个图形出现(正确地,可以看到正弦波),然后立即消失。我已经在线阅读了在实际的gnuplot应用程序中这在使用Windows时很常见的情况,并且在绘图后必须添加“ -persist”。幸运的是,JavaPlot也具有执行此操作的功能:

p.setPersist(true);


但就我而言,它什么也没做。因此,第二个问题是,任何人以前使用过gnuplot,JavaPlot和Windows 7 64bit,知道如何做到这一点吗?从我的谷歌搜索,我知道pgnuplot是要运行的正确.exe吗?

我想念什么?我究竟做错了什么?

最佳答案

我想我可能会为您提供解决方法,因为今天在Windows 7上访问JavaPlot时遇到了同样的问题(尽管此处是32位)。是的,pgnuplot.exe是您想要的版本,但是如果您不想这样做,则不需要显式设置setPersist,因为JavaPlot会为您执行此操作。我要做的是遍历源代码并注释掉一行。

在GnuPlotParameters中,我看到了代码

/* Finish! */
bf.append("quit").append(NL);


这是第198-199行。然后,绘图窗口保持打开状态。现在,这也要做的是打开gnuplot。如果您不介意,您可以通过这种方式查看图表。还没有弄清楚如何在打开绘图窗口的同时关闭gnuplot。

编辑:

也许更合适的方法是不注释掉199行并继续执行此操作:

bf.append("pause -1").append(NL);

/* Finish! */
bf.append("quit").append(NL);


以这种方式,出现暂停对话框。这使您可以查看图。当您关闭该对话框时,一切都会再见。

10-07 19:11
查看更多