如何从终端绘制标准输入?

如何从终端绘制标准输入?

我有一堆输出如下数据的二进制文件:

-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"

相关内容