【问题标题】:How to set xrange on command line in gnuplot如何在 gnuplot 的命令行上设置 xrange
【发布时间】:2020-08-21 11:04:56
【问题描述】:

我有几个 gnuplot 脚本可以为我绘制图表。我需要在命令行为每个gnuplot脚本设置相同的xrange值。 我不想单独打开每一个。

gnuplot 脚本中的代码(名称:tlakD.gnuplot):

set xdata time 
set timefmt "%m/%d/%Y %H:%M" # specify time string format
set xrange datum
set format x "%d/%m/%Y "

命令行尝试: gnuplot -e "datum='["1/1/19 12:00":"1/5/19 11:59"]'" tlakD.gnuplot

第二次尝试: 我删除了 xrange。

gnuplot 脚本中的代码(名称:tlakD.gnuplot):

set xdata time 
set timefmt "%m/%d/%Y %H:%M" # specify time string format
set format x "%d/%m/%Y "

命令行尝试: gnuplot -e "xrange='["1/1/19 12:00":"1/5/19 11:59"]'" tlakD.gnuplot

我想要的一个想法: gnuplot -e "xrange='["1/1/19 12:00":"1/5/19 11:59"]'" tlakD.gnuplot ; vlhkosD.gnuplot; teplotaD.gnuplo and many more gnuplots scripts 我想用相同的 xrange 运行所有脚本。 谢谢

【问题讨论】:

    标签: command-line set gnuplot default-value xrange


    【解决方案1】:

    您似乎不能在一个变量中指定范围 [...:...],但您可以在 2 个单独的字符串变量中这样做:

    gnuplot  -e a='"1/1/19 12:00"' -e b='"1/5/19 11:59]"'
    
    set xrange [a:b]
    

    【讨论】:

      【解决方案2】:

      我创建了一个像这样的data.txt 文件:

      "2/1/2019 10:00:00" 4
      "3/1/2019 10:00:00" 8
      "4/1/2019 10:00:00" 16
      "5/1/2019 10:00:00" 32
      

      我将在gnuplot 中运行的命令是:

      set timefmt '"%d/%m/%Y %H:%M:%S"'
      set xdata time
      set xrange ['"1/1/2019 12:00"':'"1/5/2019 11:59"']
      plot "data.txt" using 1:2
      

      所以,这意味着我的bash 命令行将是:

      gnuplot -p \
              -e "set timefmt '\"%d/%m/%Y %H:%M:%S\"'"                    \
              -e "set xdata time"                                         \
              -e "set xrange ['\"1/1/2019 12:00\"':'\"5/1/2019 11:59\"']" \
              -e "plot \"data.txt\" using 1:2"
      

      【讨论】:

        【解决方案3】:

        我建议将范围命令放在一个单独的文件中,并在命令中同时调用范围文件和绘图文件。您甚至可以拥有一系列范围文件,并在绘图时选择您想要的。

         gnuplot setrange_1.gp tlakD.gp
        

        这里没有必要使用-e 构造。 gnuplot 将按照给定的顺序执行命令行中列出的每个文件,就好像它们在执行之前已经连接成一个更大的文件一样。

        【讨论】:

        • 这个方法我也试过了,可惜不行。命令行写道:不能用空的 x 范围绘图!在单独的文件中(名称:nastav.gp)是:set xrange ["1/1/19 12:00":"1/5/19 11:59"] 在命令行中:gnuplot nastav.gp tlakD.gnuplo
        • 我向您保证该方法有效。我建议从一个工作序列开始,然后将其拆分为一个文件中的第一部分和另一个文件中的第二部分。
        • 你也可以使用命令行构造cat file1 file2 | gnuplot,虽然我想不出这样做有什么好处。
        猜你喜欢
        • 2020-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-30
        • 1970-01-01
        • 2021-09-19
        • 2012-06-09
        • 1970-01-01
        相关资源
        最近更新 更多