gnuplot:在一个窗口中的各个绘图之间移动,就像图像查看器一样
有没有办法有一个gnuplot窗口,然后在该窗口内循环前进到不同的绘图 更清楚一点,假设我想用这种方式绘制sin(x)、cos(x)和tan(x)。首先,会出现一个带有sin(x)的窗口,然后当我按某个键时,该窗口会显示cos(x),最后,在下一次击键时,它会显示tan(x) 我只能找到关于在同一窗口上同时显示多个绘图的信息。在我的例子中,我的数据是每天的,我有大约300天的时间来查看 这与在图像查看器中打开300个图像差不多。您只需点击“下一步”即可查看下一步。不过,我无法导出到图像,因为我需要能够缩放和检查每个单独的绘图 我正在使用wxt,并使用popen()从C程序调用gnuplot,如果这很重要的话gnuplot:在一个窗口中的各个绘图之间移动,就像图像查看器一样,gnuplot,Gnuplot,有没有办法有一个gnuplot窗口,然后在该窗口内循环前进到不同的绘图 更清楚一点,假设我想用这种方式绘制sin(x)、cos(x)和tan(x)。首先,会出现一个带有sin(x)的窗口,然后当我按某个键时,该窗口会显示cos(x),最后,在下一次击键时,它会显示tan(x) 我只能找到关于在同一窗口上同时显示多个绘图的信息。在我的例子中,我的数据是每天的,我有大约300天的时间来查看 这与在图像查看器中打开300个图像差不多。您只需点击“下一步”即可查看下一步。不过,我无法导出到图像,因为我需
有人有什么想法吗?你可以使用
暂停鼠标按键来捕捉绘图后的键盘输入。键代码将在gnuplot中的鼠标键
变量中可用(请参阅帮助暂停
)。例如,下面绘制正弦曲线并等待键盘输入;按“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)