如何从Java环境运行Gnuplot脚本?

时间:2012-05-15 18:27:06

标签: java gnuplot javaplot

我发现使用JavaPlot的所有信息都是关于如何创建绘图并从Java代码级运行它们。这很好,但是我已经使用了一些脚本文件,当用户执行它们时,它们会在Jave之外执行我想要的操作。现在,我可以打开Gnuplot,然后输入命令

gnuplot> load "script.plt"

它会输出一个很好的.png图形,我的情节。在脚本中,其中一行称为

plot "graphData.dat" title "Line Title"

文件'graphData.dat'存储绘制图形所需的坐标信息。

当用户双击其文件夹中的“script.plt”文件(我在Windows环境中运行)时,这可以正常工作。这是非常完美的(减去gnuplot过程没有正确结束的事实,这不是我要问的,但如果它响起任何铃声,我也很想听听如何解决这个问题)。

我面临的问题是我需要能够通过gnuplot 通过java环境运行脚本。我的程序需要使用gnuplot自动导出.png图形。我已经做了一些环顾四周,JavaPlot似乎是Gnuplot中Java支持的首选库,但我不能让它做我想做的事情:只需运行一个调用上述加载命令的gnuplot实例。 / p>

我可以得到任何帮助或建议,我已经尝试放弃脚本文件,我试图动态调用load命令(但显然不是从正确的位置),我已经尝试绘图了直接的.dat文件,它真的不喜欢。只要我能让脚本运行,我就会设置。

2 个答案:

答案 0 :(得分:1)

我立即注意到一件事:只需从gnuplot提示符加载一个脚本(即。)

gnuplot> #We've already entered gnuplot from the commandline
gnuplot> load "script.plt"

完全等同于在命令行上将脚本名称作为第一个参数传递给gnuplot(即。)

gnuplot script.plt

这也等同于命令行中的gnuplot -e 'load "script.plt"'。这简化了您的问题,因为现在您不需要弄清楚如何通过管道与gnuplot进行通信,您只需要弄清楚如何在Java中发出系统调用 - 我认为合理的任务对于在java中编码的人来说很简单。在python,我可以import os; os.system("gnuplot script.plt")

我认为@andersoj发布的链接中的第二,第三和第四个答案给出了一个示例和链接。

答案 1 :(得分:1)

JavaGnuplotHybrid库是您所需要的:使用Java和Gnuplot进行混合编程。

  1. 使用Java和Gnuplot进行混合编程
  2. 重量很轻(只有三个核心类)
  3. 使用Gnuplot代码中的标签来执行函数或获取字段的值 在爪哇。
  4. 支持Gnuplot的同步和异步运行 Java的。 (synchronized:你的java程序会等到你关闭 弹出Gnuplot窗口;异步:你的java程序不会 等待。)
  5. 将Gnuplot的错误/正常文本输出捕获到java终端
  6. 从xml文件中读取Gnuplot代码
  7. 支持Gnuplot代码模板。
  8. 更多详情:

    1. 项目页面:https://github.com/mleoking/JavaGnuplotHybrid
    2. 示例:https://github.com/mleoking/JavaGnuplotHybrid/blob/master/javagnuplothybrid/doc/examples.md