我有一堆输出如下数据的二进制文件:
-0.002019
-0.000790
0.000158
0.001539
它只是我想要在 y 轴上绘制的一组数字,并且在 x 轴上有相等的间距。
输出实际上有几千行长。
我需要一种简单的方法将其传输到可以绘制它的东西上,就像这样:
./program_dumping_numbers | ??? # a simple window of the plot pops up!
答案1
请尝试以下操作:
./program_dumping_numbers | gnuplot -p -e 'plot "/dev/stdin" using 0:1 with lines'
其中 0 是虚拟线号,1 是列号,“带有线”表示连续的线而不仅仅是点
答案2
我强烈推荐ttyplot,您可以直接在终端中构建实时图表,从 STDIN 读取数据
答案3
这里有一些选择。我最喜欢datadash
其中最好的。但效果都不太好。
ttyplot
datadash --average-line # install: https://github.com/keithknott26/datadash/issues/5
feedgnuplot --stream --terminal 'dumb 120,30' --lines # outputs new plots instead of updating the creen.
# `gnuplot -e 'set terminal'` for a list of outputs
asciigraph -r # usable but no stats and wrong height detection. No fixed scale. github.com/guptarohit/asciigraph/cmd/asciigraph
答案4
一个老方法是使用 plotutils [1]已安装。
(在 Ubuntu 下,您可以使用 进行安装sudo apt-get install plotutils
)。
使用命令
./program_dumping_numbers | graph -T X
它将在 X 窗口中绘制你的数据,而不是
./program_dumping_numbers | graph -T png > Myfile.png
它将创建一个 png 文件。输入info plotutils
以供进一步参考。
当然,您可以将 gnuplot 与从标准输入读取的脚本以及您想要的所有功能一起使用。(选择作为文件输入 "/dev/stdin"
)