【发布时间】:2017-08-21 02:54:51
【问题描述】:
我有直接从 Bash 生成的输入(代表 y=x^2)
for((i=0;i<10;i++)); do printf "%3d %3d\n" $((i)) $((i*i)); done
我想用 gnuplot 绘制这些输入数据,并尽可能使用管道。
我试图天真地做:
for((i=0;i<100;i++)); do printf "%3d %3d\n" $((i)) $((i*i)); done < gnuplot -e "plot u 1:2 w l"
但这行不通,因为我 printf sequentially 的值 (i,i^2)。
我尝试使用echo -e(在gnuplot重定向“<”之前):
echo -e $(for((i=0;i<100;i++)); do printf "%3d %3d\n" $((i)) $((i*i)); done )
在上面的命令 (for loop) 上找到一种方法来存储 2 个完整的值列,然后将它们传递给 gnuplot 命令,但是使用这个解决方案,我不会产生 2 列(我只得到一行数据)。
有人可以帮助我使用管道(即只有一个命令行)用 gnuplot 绘制生成的数据
感谢您的帮助
【问题讨论】:
-
您想将数据作为列发送吗?不清楚你想如何发送它,你能用一个合适的例子来展示它吗?
-
我想绘制由我的 for 循环 生成的数据并将它们直接通过管道传输到 gnuplot(如果可能的话)。我的问题是我不能像标准 dat 文件那样存储这个数据流(即使用 gnuplot 的经典方式)。