【问题标题】:loop plotting in gnuplot in same window在同一窗口中的gnuplot中循环绘图
【发布时间】:2020-04-11 05:58:56
【问题描述】:

我正在运行一个使用 gnuplot 绘图子例程的程序。我正在运行一个脚本,应该实时查看结果图。

在 do 循环中,绘图命令会出现 100 次。因此,我获得了 100 个包含绘图的单独 gnuplot 窗口。

程序是这样的

do i=1,100
...
...
call plota1(x,y)
end do

有没有什么办法让我没有得到这样的 100 个图,只有一个,并且说,当第 (i+1) 个图出现时,它将出现在同一个 gnuplot 窗口中替换第 i 个图?

使用的绘图子程序如下。

subroutine plota1(x,y)
real*8::x(:),y(:)
integer l,u,i
l=lbound(x(:),dim=1)
u=ubound(x(:),dim=1)
open(1,file="p.dat")
open(2,file="p.plt")

do i=l,u
write(1,*) x(i),y(i)
end do


write(2,*) "p 'p.dat' u 1:2 w l"

call execute_command_line('gnuplot -p p.plt')
close(1,status='delete')
close(2,status='delete')
end subroutine plota1

绘图命令来自 "write(2,*) "p 'p.dat' u 1:2 w l"" 行。 我应该在那里添加什么以获得所需的输出?如果没有办法,使用其他一些软件的建议也会有所帮助。

【问题讨论】:

    标签: plot fortran gnuplot


    【解决方案1】:

    你展示的子程序做两件事。它创建一个新的数据文件,然后创建一个新的 gnuplot 实例来绘制该文件中的数据。那不是你想要的。您想要一个单一用途的子程序来用新数据填充数据文件,然后是一个单独的子程序(或从主程序直接调用)来告诉一个 已经存在的 gnuplot 实例来绘制数据那个新文件。 IE。您需要将打开 gnuplot 实例的步骤分开,然后再向其发送命令。由于您没有说明您正在使用什么库,因此人们无法建议您它是否包含适当的例程。

    【讨论】:

    • 通过库,我只是指保存子例程的模块。我只使用上述子程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    相关资源
    最近更新 更多