首页 > 解决方案 > 在 gnuplot 中绘制一对多函数

问题描述

我有一个看起来像这样的数据文件:

    a               b                     c                   d
9.91804289    0.32890611E-04        2.253113185e-08    2.858389795e-08
9.91804289    0.32890611E-04        2.253113185e-08    2.858389795e-08
9.89517766    0.32597535E-04        2.255018344e-08    2.742542369e-08
9.86882582    0.33125571E-04        2.251589285e-08    2.650318558e-08

现在,所有 b、c 和 d 都是 a 的函数。但是,b 作为 a 的函数变化很大(并且在各种不同的 a 处获得相同的值)。我需要将 c 和 d 绘制为 b 的函数。但是由于 b 的这种变化(基本上是它的一对多性质),我在 c 和 d 图中有不需要的分支。在 gnuplot 中有什么方法可以通过仅使用 a 设置 xrange 以我想要的方式绘制它?

标签: gnuplot

解决方案


查看help using如何过滤输入数据。如果您只想选择数据文件中第一列的值介于amin和之间的那些行amax,您可以执行类似的操作

amin=9.8
amax=9.9
plot "filename.dat" using 2:(($1 > amin && $1 < amax ) ? $3 : NaN) title "c" with points, \
     "" using 2:(($1 > amin && $1 < amax ) ? $4 : NaN) title "d" with points

推荐阅读