【问题标题】:plot only specific columns in gnuplot仅绘制 gnuplot 中的特定列
【发布时间】:2017-08-21 16:47:40
【问题描述】:

我有一个如下所示的 csv 文件,我想绘制 S(在 x 轴上)和 B(轴)。如何使用 gnuplot 生成线条图。

    Test_Image,Original_Size
    red-room.png,918394
    Q,S,B,S,C,R
    0,1021763,0.121086,0.00001459,-11.26,-222.18
    1,1061763,0.125086,0.00001459,-11.26,-222.18
    2,1051763,0.121086,0.00001459,-11.26,-222.18
    3,1041763,0.121086,0.00001459,-11.26,-222.18
    4,986461,0.151573,0.00003318,-7.63,-211.67
    5,955766,0.160869,0.00005782,-4.07,-201.37

基本上我需要一种方法来告诉 gnuplot 忽略前 3 行并绘制第 2 列和第 3 列。

【问题讨论】:

    标签: bash gnuplot


    【解决方案1】:

    您需要告诉 gnuplot 字段由逗号分隔,并且它应该绘制第 2 列和第 3 列:

    set datafile separator comma
    plot "data.csv" using 2:3 w lp
    

    Gnuplot 会自动忽略前三行。

    【讨论】:

      【解决方案2】:

      您可以像这样在读入数据时修改数据(而不影响您的输入文件):

      plot 'awk -F, "NR>3{print $2,$3}" data.csv |' using ...
      

      也就是说要打印行号大于输入文件data.csv 3 的行的第2 和第3 行。

      您可以在终端中单独使用awk 命令进行试验,以便在gnuplot 之外对其进行测试:

      awk -F, 'NR>3{print $2, $3}' data.csv
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多