我拼命试图让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);
以这种方式,出现暂停对话框。这使您可以查看图。当您关闭该对话框时,一切都会再见。