有没有办法有一个gnuplot窗口,然后从那个窗口中循环到不同的图?
要更清楚一点,说我想以这种方式绘制sin(x),cos(x)和tan(x)。首先,一个窗口会出现sin(x),然后当我按下某个键时,同一个窗口会显示cos(x),最后,在下一次击键时,它会显示tan(x)
我只能在同一个窗口找到同时显示多个图的信息。在我的情况下,我的数据是每天,我有大约300天的时间来查看。
与在图像查看器中打开300张图像有点相同。你只需点击“下一步”即可查看下一个。但是,我无法导出到图像,因为我需要能够缩放和检查每个单独的图。
我正在使用wxt,并使用popen()从C程序调用gnuplot,如果这很重要。
有人有什么想法吗?
答案 0 :(得分:1)
您可以使用pause mouse keypress
在绘图后捕获键盘输入。密钥代码将在MOUSE_KEY
变量的gnuplot中提供(请参阅help pause
)。例如,下面绘制正弦曲线并等待键盘输入;按" a"将曲线向左移动" d"将曲线向右移动:
set xrange [-10:10]
x0 = 0.
while 1 {
plot sin(x-x0)
pause mouse keypress
print "Key pressed: ", MOUSE_KEY
if (MOUSE_KEY == 100) { # "d" pressed
x0 = x0 + 0.1 }
else {
if (MOUSE_KEY == 97) { # "a" pressed
x0 = x0 - 0.1
}
else {
break
}
}
}
这适用于X
终端,但至少因为它似乎不适用于wxt
。我不确定是否可以将按键发送回wxt
的gnuplot。
可与wxt
终端配合使用的更简单的解决方案是使用bind
命令:
set xrange [-10:10]
x0 = 0.
bind a "x0 = x0+0.1; replot"
bind d "x0 = x0-0.1; replot"
plot sin(x-x0)