【问题标题】:Can splot command create data blocks through "set table"?splot命令可以通过“set table”创建数据块吗?
【发布时间】:2016-02-10 03:38:25
【问题描述】:

我有一个 2D 函数,我在 splot f(x,y) 命令后打印出 set table 生成的多列数据。

gnuplot>f(x,y)=sin(x*y)
> set table "isocurve.dat"
> splot [-pi:pi] [-pi:pi] f(x,y)

表示等值曲线的数据块在由 set table 生成的 Ascii 文件中由一个空行分隔。

因此数据文件只包含一个块。

问题是:是否可以将等值曲线用两条空线隔开,以便将它们作为数据块进行跟踪?

我觉得这很有趣,因为这可以让您使用 stats 命令获得单个等曲线的简单统计信息。举个例子:

set print 'max.dat'
do for [i=0:10]{
stats 'isocurve.dat' u 1:3 index i
print i,STAS_pos_max_y,STATS_max}

作为一种解决方法,可以通过 awk 管道传输 isocurve.dat 文件并获得双倍的空行。但我只是在问 gnuplot 是否可以自己做到这一点。

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    如果您使用plot for ... 模拟splot,则迭代将保存为单独的数据块:

    N = 21
    set table 'table.dat'
    plot for [i=0:(N-1)] f(x, i*pi*(2.0/N) - pi)
    unset table
    

    虽然这行得通,但这不是我会使用 gnuplot 完成的任务。

    【讨论】:

    • 谢谢。我也可以使用 splot 以标准方式生成表格;然后再进行这种迭代以对每个等值曲线执行统计。
    猜你喜欢
    • 2018-11-14
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 2022-06-15
    • 2016-02-14
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多