gpt4 book ai didi

gnuplot - 如何将点削减到特定值以下

转载 作者:行者123 更新时间:2023-12-02 16:44:46 26 4
gpt4 key购买 nike

我有一个数据文件,我想用 gnuplot 绘制它。但是,对于 y 轴,我希望 gnuplot 忽略低于某个值的所有点。有没有一种简单的方法可以做到这一点,特别是数据文件很大?

最佳答案

有(至少)两种不依赖外部工具的方法。

IGNORE_BELOW=50
set yrange [IGNORE_BELOW:] #ignore points below 50, but your yrange will start at 50.

第二种方法是在 using 语句中使用 gnuplot 三元运算符。请注意,在执行文件 IO 时,gnuplot 会默默地忽略未定义的值 (1/0)。

IGNORE_BELOW=50
filter(x)=(x>=IGNORE_BELOW)?(x):(1/0)
plot 'mydatafile.dat' u 1:(filter($2))

这假设您有一个空格分隔的数据文件,并且您想要在 x 轴上绘制第一列,在 y 轴上绘制第二列(以典型的 gnuplot 方式)。

第一种方法最简单,但它不允许您修剪掉想要绘制的范围内的点。第二种方法有点丑陋,但更通用,可用于为 gnuplot 数据制作各种输入过滤器。

当然,如果你的 gnuplot 支持管道并且你想使用外部工具来编写过滤器,你也可以这样做。只需工具接受数据文件作为输入并将修改后的数据写入标准输出即可。然后在 gnuplot 中:

plot "< mytool.ext mydatafile" ...

对于这个问题,awk 将是一个很好的工具。

关于gnuplot - 如何将点削减到特定值以下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10980470/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com