gnuplot wxt 不再工作

thd*_*dox 5 gnuplot

我最近升级到 Debian jessie,这意味着我已经从 gnuplot 4.6.0 升级到 gnuplot 4.6.6(问题与 gnuplot 5.0 相同)。

我有 bash 脚本自动化的东西,并启动 gnuplot 终端。

我正在使用:

gnuplot -persist -e "set title 'Sine curve'; plot sin(x)"
Run Code Online (Sandbox Code Playgroud)

或者

gnuplot -persist <<EOF                                   
set title 'Sine curve'
plot sin(x)
EOF
Run Code Online (Sandbox Code Playgroud)

wxt由于#751441,该终端不再由 debian(以及 ubuntu 等衍生产品)分发

我现在正在使用终端qt。它显示了情节,但这就是结局。该窗口是静态的,大多数按钮不起作用。我无法缩放,无法取消缩放,无法显示网格。

如何规避这种情况?

thd*_*dox 6

回答我自己的问题:我花了很多时间在谷歌上搜索,试图理解原因,阅读不纠正它的借口,并找到解决方法。

首先,您必须删除, -persist因为它具有wxt特殊的工作方式,并且与qt终端的工作方式不同。见#1418

其次,您必须在情节后添加“暂停鼠标关闭”。见#1418。脚本现在是:

gnuplot -e "set title 'Sine curve'; plot sin(x); pause mouse close"
Run Code Online (Sandbox Code Playgroud)

现在放大、缩小和显示网格都在工作。

第三,等等,你没有绘制一个窦,但是with lines。像这个例子:

$ gnuplot <<EOF
plot '-' using 1:2 t '' with line
0 0
10 10
e
pause mouse close
EOF
Run Code Online (Sandbox Code Playgroud)

现在,如果你放大一个段中间的某个地方,你什么也得不到,一个空白的屏幕。您需要的是在未显示set clip two结束时告诉不要剪辑。见#1419。所以以下将起作用:

$ gnuplot <<EOF
set clip two
plot '-' using 1:2 t '' with line
0 0
10 10
e
pause mouse close
EOF
Run Code Online (Sandbox Code Playgroud)

最后,我所做的是:

  1. pause mouse close在脚本末尾添加
  2. 添加set clip two~/.gnuplot文件中

有了这个,我可以wxt在使用qt终端时模仿工作方式。恕我直言,作为一个基本的最终用户,这应该是默认的。