pipe - gnuplot 使用管道输入绘图

标签 pipe gnuplot piping

我想将数据通过管道传输到 gnuplot 中,并在不输入 gnuplot 命令行或提供现有脚本文件的情况下绘制它。例如单线,如 cat datafile | gnuplot并看到情节出现。假设数据文件格式正确,例如由制表符或空格分隔的两列简单的数字数据。

因为这会立即关闭,即使它会工作(它不会),但这可以通过 -persist 选项(缩写为 -p)解决。

本质上,我希望下面的代码行能够工作,或者理解它为什么不能工作以及如何修改它才能工作:echo -e "1 3\n2 4\n3 5" | gnuplot -p <<< "plot '-'"

我可以使用 -e 选项得到一些东西,但是一旦我开始制作更复杂的绘图命令并且我不明白那个选项在做什么,这对我来说似乎经常中断,所以我更愿意简单地写如上所述,使用 heredoc 的简短脚本文件。这有效:echo -e "1 3\n2 4\n3 5" | gnuplot -p -e "plot '-'"

为什么即使在使用 plot '-' 时,通过管道传输到 gnuplot 的列数据也不能简单地绘制出来?请求绘图从标准输入中获取数据的语法?

最佳答案

您想将 2 个不同的流通过管道传输到 gnuplot:数据和绘图命令。 Gnuplot 只需要一个。那为什么不简单地连接绘图命令和数据呢?

cat > file << .
plot '-' using (\$1):(\$2)
1 2
2 3
3 4
e
.

然后是 cat 文件 | gnuplot -p

如果 $ 字符是 gnuplot 变量而不是 shell 变量,请记住对它们进行转义。

关于pipe - gnuplot 使用管道输入绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33457750/

相关文章:

c++ - 我的多项式回归梯度下降有什么问题(C++,GNUPLOT)

OSX 中的 Bash 管道提示找不到命令,有时

r - 获取 system.time 或使用管道复制工作 %>%

java - 使用 Java 在线程之间传输数据

audio - 从 sox 输出获取 .wav 的长度

c - 使用子进程读取输入?

gnuplot--填充两个函数之间的空间

c - 将视频输出到文件和管道 : simultaneously using FFmpeg Libav

c - 从C中的管道读取字符

Gnuplot 在平行图中插入点