来自 stdin 的 gnuplot 两次
gnuplot from stdin twice
我想为代码中的两行或更多行重新使用相同的标准输入数据,例如
plot '-' using 0:1 with lines, '' using 0:1:2 with yerrorbars
3.4 0.1
2.9 0.2
8.8 0.5
2.1 0.7
如果我将所有数据而不是标准输入存储到一个文件中,然后从该数据文件中绘制,则此代码将起作用。然而,从 stdin 绘图,代码的行为完全像
plot '-' using 0:1 with lines, '-' using 0:1:2 with yerrorbars
3.4 0.1
2.9 0.2
8.8 0.5
2.1 0.7
(即 '-'
而不是 ''
)并给出警告“跳过没有有效点的数据文件”,而不是将误差线打印到线图数据。
显然,如果我在 stdin 上复制数据,该图就可以工作了
plot '-' using 0:1 with lines, '' using 0:1:2 with yerrorbars
3.4 0.1
2.9 0.2
8.8 0.5
2.1 0.7
e
3.4 0.1
2.9 0.2
8.8 0.5
2.1 0.7
但我觉得这并不令人满意,因为 ""
意味着同样的事情
作为标准输入的 "-"
。当然,我正在寻找的东西需要 gnuplot 静默存储来自 stdin 的最新数据段以供潜在重用,这在大多数情况下可能是不必要的。我仍然认为这不会对效率造成巨大负担。所以也许有一个选项或我不知道的 gnuplot 语法的不同用法?
为什么不使用数据块?我从不使用 '-'
,正是因为这个问题。您可以使用 undef $Data
清除数据。检查 help datablocks
和 help undef
.
代码:
### re-use of data from a datablock
reset session
$Data <<EOD
3.4 0.1
2.9 0.2
8.8 0.5
2.1 0.7
EOD
set xrange [-0.2:3.2]
plot $Data u 0:1 w l, '' using 0:1:2 w yerrorbars
### end of code
结果:
我想为代码中的两行或更多行重新使用相同的标准输入数据,例如
plot '-' using 0:1 with lines, '' using 0:1:2 with yerrorbars
3.4 0.1
2.9 0.2
8.8 0.5
2.1 0.7
如果我将所有数据而不是标准输入存储到一个文件中,然后从该数据文件中绘制,则此代码将起作用。然而,从 stdin 绘图,代码的行为完全像
plot '-' using 0:1 with lines, '-' using 0:1:2 with yerrorbars
3.4 0.1
2.9 0.2
8.8 0.5
2.1 0.7
(即 '-'
而不是 ''
)并给出警告“跳过没有有效点的数据文件”,而不是将误差线打印到线图数据。
显然,如果我在 stdin 上复制数据,该图就可以工作了
plot '-' using 0:1 with lines, '' using 0:1:2 with yerrorbars
3.4 0.1
2.9 0.2
8.8 0.5
2.1 0.7
e
3.4 0.1
2.9 0.2
8.8 0.5
2.1 0.7
但我觉得这并不令人满意,因为 ""
意味着同样的事情
作为标准输入的 "-"
。当然,我正在寻找的东西需要 gnuplot 静默存储来自 stdin 的最新数据段以供潜在重用,这在大多数情况下可能是不必要的。我仍然认为这不会对效率造成巨大负担。所以也许有一个选项或我不知道的 gnuplot 语法的不同用法?
为什么不使用数据块?我从不使用 '-'
,正是因为这个问题。您可以使用 undef $Data
清除数据。检查 help datablocks
和 help undef
.
代码:
### re-use of data from a datablock
reset session
$Data <<EOD
3.4 0.1
2.9 0.2
8.8 0.5
2.1 0.7
EOD
set xrange [-0.2:3.2]
plot $Data u 0:1 w l, '' using 0:1:2 w yerrorbars
### end of code
结果: