gnuplot - 如何在 gnuplot 中使用数据文件的多行?

标签 gnuplot

我有一个包含两列的数据文件:XiYi。我想绘制 i>1Xi(Yi-1 - Yi)/Yi-1 的关系图。可以直接在 GNUPlot 中做到这一点吗?

最佳答案

是的,直接使用 gnuplot 是可能的——但这并不容易:

firstval = NaN
yi1(yi) = (returnval=firstval, firstval=yi, returnval)
plot "datafile" using 1:((yi1($2)-$2)/returnval)

您需要使用内联函数。内联函数的形式为:

funcname(args,...) = (statement1,statement2,...,statementn, return_value)

这里我刚刚创建了一个函数来保存最后传递的值。不幸的是,这个解决方案变得有点难看,因为我无法在使用规范中调用 yi1 两次(第二次,我会得到错误的返回值),所以我必须引用持有的变量直接返回值。它不漂亮,但很有效。您可能可以通过传递 $0 (行号)并仅在 $0 更改时更新来“美化”它,但对于此 hack 来说可能不值得。

关于gnuplot - 如何在 gnuplot 中使用数据文件的多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13369328/

相关文章:

plot - 如何将 gnuplot 实时数据图作为实时图形观看,并自动更新?

3d - 如何根据点的类别制作 3D 密度图

c++ - 创建管道并从 C++ 写入 gnuplot 终端

gnuplot - 如何在 Gnuplot 中指示具有不同点类型的标签?

gnuplot - 在 gnuplot 中,使用 "set datafile missing",如何同时忽略 "nan"和 "-nan"?

command-line - 如何将命令行参数传递给 gnuplot?

gnuplot:为什么线宽 0 的宽度不为零?

python - 在 xubuntu 上使用 gnuplot 保存图表

gnuplot - 如何在 Gnuplot 中制作对数轴

Gnuplot Postscript 特殊字符数学方程