从脚本文件调用时 gnuplot 没有响应

gnuplot not responsive when called from script file

我有一个数据文件 "data.dat",比方说。

当我输入 gnuplot shell 时输入 'gnuplot',然后 运行 命令

plot 'data.dat' u 1:2 w l

出现的图保持响应,即,通过鼠标右键单击我可以缩放它或通过箭头键,我可以移动图 up/down/side。

但是当我尝试使用脚本文件做同样的事情时,我不能再使用那些右键单击缩放等等。我的脚本文件命名为 p.plt,并包含以下行 -

plot 'data.dat' u 1:2 w l

现在,当我使用命令 gnuplot -p p.plt 执行它时,它不再响应那些右键单击或箭头键。我应该怎么做才能让它与脚本文件一起工作?

我正在使用 linux mint 19.3 cinnamon 和 gnuplot 版本 gnuplot 5.2 patchlevel 2

-p 选项 ("persist") 告诉 gnuplot 在程序退出时让绘图继续显示在屏幕上。在这种状态下,正如您所发现的,大多数鼠标操作不再有效,因为程序不再响应它们。所以 "persist" 不是你想要的。而是向您的脚本添加一个命令,告诉程序在绘图 window 关闭之前保持活动状态:

  plot 'data.dat' u 1:2 w l
  pause mouse close

具体什么操作或信号被解释为 "close" 取决于您的 window 管理器、桌面设置和操作系统。通常在 window 边框的某处有一个小部件(可能在顶角有一点 "x"?)并且可能还有一个热键("alt-F4" 在我的桌面上)。您可以通过在 gnuplot 中定义自己的热键来补充这一点:

  plot 'data.dat' u 1:2 w l
  bind all "alt-End" "exit gnuplot"
  pause mouse close

现在在鼠标悬停在任何 gnuplot window 上时键入 <alt>+<End> 应该会导致程序退出。