JavaPlot 和 gnuplot

2024-01-22

我正在拼命地努力让 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 会为您执行此操作。我所要做的就是浏览源代码并注释掉一行。

在 GnuPlot 参数中,我看到了代码

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

这是第 198-199 行。然后绘图窗口保持打开状态。现在,这也让 gnuplot 保持打开状态。如果您不介意,您可以这样查看图表。尚未弄清楚如何在保持绘图窗口打开的同时关闭 gnuplot。

EDIT:

也许更合适的方法是不注释掉第 199 行并继续这样:

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

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

这样,就会出现暂停对话框。这可以让你看到情节。当您关闭对话框时,一切都会再见。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaPlot 和 gnuplot 的相关文章

随机推荐

  • 如何将 docx 或 wordml xml 文件转换为 xsl-fo?

    我一直在寻找一种将 docx 或 wordml xml 转换为 xsl fo 的方法 我读了这篇文章 Perl 最好的 XSLT 引擎是什么 https stackoverflow com questions 156683 what is
  • 只有 1 个虚拟继承的钻石问题

    这还能解决钻石问题吗 class A class B virtual A class C A class D B C Edit 如果不是 那是什么 和这个一样吗 class A class B A class C A class D B C
  • 如何设置代码以便在文本框中单击鼠标输入信息? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 在 Visual Basic 2010 中 我有两个文本框和一个数字键盘 每次我单击一个数字时 该数字都会显示在两个文本框中 我该如何做到这
  • Visual Studio 2010 的源代码大纲窗口

    对于 Visual Studio 2008 有一个小而伟大的插件 源大纲 on Codeplex http sourcecodeoutliner codeplex com http sourcecodeoutliner codeplex c
  • SVG Batik 根元素命名空间与请求的不匹配

    几周前 它在我的 SVG 上运行得很好 但不知何故它停止了工作 我不知道原因 因为在服务器上触发的错误没有帮助 当我将 svg 文件传输到 pdf 时会发生这种情况 Root element namespace does not match
  • 如何在关闭弹出窗口时调用函数

    我正在调用Javascriptwindow open 函数在弹出窗口中加载另一个 url 当用户关闭弹出窗口时 我想要MyThanks 要调用的函数 我怎样才能做到这一点 我的脚本
  • WTF form.validate_on_submit() 不起作用

    我有以下代码 并且正在提交表单 当我点击提交按钮时 我的表单验证会打印出来False 我已经检查并确保我包含了不同帖子中的所有内容 但我无法对其进行验证 我做错了什么吗 app route index html methods GET PO
  • 如何将 Javascript 对象键大写?

    有人知道有什么好的方法可以扭转这个吗 var obj key1 value1 key2 value2 key3 value3 key4 value4 into var obj Key1 value1 Key2 value2 Key3 val
  • 如何向 SQLite 3 表中插入多行? [复制]

    这个问题在这里已经有答案了 在 MySQL 中我会使用 INSERT INTO mytable col1 col2 VALUES 1 aaa 2 bbb 但这会导致 SQLite 中出现错误 SQLite 的正确语法是什么 之前已经在这里回
  • 使用 ES6 装饰器时出现意外的标记“@”

    我有一个 React 项目设置 我正在尝试将 MobX 合并到其中 这样我就必须使用装饰器 即 observable 当我这样做时 我收到以下错误 https github com mobxjs mobx https github com
  • 隐藏 Web API 响应的属性

    我想隐藏Modifiedby Modifieddate and Createddate来自 Web API 响应的属性 我尝试使用 JsonOgnore IgnoreDataMember 但没有工作 ModelMetadataType ty
  • 为什么 Visual Studio 不允许我在 enable_if 中使用模板化的 constexpr 函数?

    因此 我将其归结为最小的 完整的 可验证的示例 并且 Visual Studio 2015 似乎不允许我使用模板化的 constexpr函数在一个enable if 例如 template
  • 使用 AutoFixture 创建递归数据结构的固定装置

    我正在开发一个项目 其中有一些递归数据结构 我想为其创建一个固定装置 数据结构是XmlCommandElement 它有一个单一的方法ToCommand转换XmlCommandElement to Command 树上的每个节点都可以是Xm
  • 如何在迭代字典时从字典中删除项目?

    我可以在迭代 Python 字典时删除其中的项目吗 我想从字典中删除不满足特定条件的元素 而不是创建一个全新的字典 以下是一个好的解决方案 还是有更好的方法 for k v in mydict items if k val del mydi
  • PHP DateInterval 与 DateTime 具有可比性吗?

    我发现 PHP 中的 DateTime 对象可以与另一个对象进行比较 因为 gt 和 和 DateInterval 一样吗 当我试图回答这个问题时 我发现了一些奇怪的事情
  • wx.Python:在多个面板之间传递控制

    我是 wxPython 的新手 并且研究过类似的问题 但无法具体找到我的问题的答案 我正在创建两个带有分离器的面板 每个面板都有许多小部件 我希望一个面板中的小部件控制另一个面板的某些属性 反之亦然 在这个例子中 我试图改变背景RightP
  • ReLU 没有学习处理负输入 Keras / Tensorflow

    我希望我的神经网络将负值转换为正值 理论上 这可以使用 ReLU 函数和 1 个节点来完成 该节点将输入权重学习为 1 因此负输入乘以 1 正输入 它只是继续输出 0 代码如下 我使用 1 作为输入值 看看它是否可以至少在单个输入上进行学习
  • 更改我的项目文件不会更改 Docker 计算机内的文件

    我正在尝试使用 Docker 来改进我的工作流程 我安装了 适用于 Windows 的 Docker 工具箱 https docs docker com engine getstarted step one 在我的 Windows 10 家
  • 在Python中,可以在不使用继承的情况下实现mixin行为吗?

    Python 中是否有一种合理的方法来实现类似于 Ruby 中的 mixin 行为 即不使用继承 class Mixin object def b self print b def c self print c class Foo obje
  • JavaPlot 和 gnuplot

    我正在拼命地努力让 Java 和 gnuplot 更好地发挥作用 我已经开始使用JavaPlot并将 jar 添加到类路径 使用 Eclipse 我还下载了 gnuplot 并将其放在安全的地方 第一个问题 所有例子都由JavaPlot假设