1

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

gnuplot> load "script.plt"

它会为我输出一个漂亮的 .png 图形,显示我所拥有的情节。在脚本中,调用的行之一是

plot "graphData.dat" title "Line Title"

文件“graphData.dat”存储绘制我的图表所需的坐标信息。

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

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

我能得到的任何帮助或建议将不胜感激,我尝试放弃脚本文件,我尝试动态调用加载命令(但显然不是从正确的位置),我尝试绘制 .dat直接文件,它真的不喜欢。只要我能让那个脚本运行,我就准备好了。

4

2 回答 2

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 发布的链接中的第二、第三和第四个答案提供了示例和链接。

于 2012-05-16T12:19:15.983 回答
1

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

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

更多细节:

  1. 项目页面:https ://github.com/mleoking/JavaGnuplotHybrid
  2. 示例:https ://github.com/mleoking/JavaGnuplotHybrid/blob/master/javagnuplothybrid/doc/examples.md
于 2014-04-02T15:30:35.480 回答