2013-09-25 21 views
1

我生成使用gnuplot与下面的命令的图表:gnuplot如何理解来自stdin的命令行参数?

echo 'plot [0:14][0:1000] "source_data_file" with steps title "example graph"; pause 15' | gnuplot 

我想改变X轴和Y轴与xlabelylabel参数的名称,但是,如果我执行:

echo 'plot [0:14][0:1000] "source_data_file" with steps title "example graph" xlabel 'X-axe label' ylabel 'Y-axe label'; pause 15' | gnuplot 

..我收到一条指向xlabel的错误消息。我试图用分号分隔参数,但这没有影响。此外,我想将Y轴的指数从指数(例如1.8232e + 06)更改为整数(例如1823200),但我不知道如何将参数format y/format x传递给gnuplot。

如果gnuplot从标准输入传递给gnuplot,gnuplot如何理解命令行参数?

+1

你有一个报价问题。取决于你的shell,解决这个问题的方法可能会有所不同。准确地说,你使用单引号标签,但他们应该是在一个单引号字符串... – 2013-09-25 12:49:55

+0

@arbautjc你能解释这一点。 “他们应该用单引号字符串”是什么意思?恕我直言,他们已经在单引号的字符串。还是你的意思是“他们应该是在一个双引号字符串”? – Martin

回答

2

@arbautjc是正确的 - 对于x和y轴标签使用单引号时存在问题。另外,需要在运行plot命令之前指定那些命令。所以,更好的方法是

echo 'set xlabel "X-axe label"; set ylabel "Y-axe label"; plot [0:14][0:1000] "source_data_file" with steps title "example graph"' | gnuplot -p 

此外,pause命令是否必要? (它可能有一些理由在那里,但我不能从你的例子看到它。)

+0

我用'暂停15'来保持生成的图形打开15秒。否则,图形窗口将立即关闭。但是,您提供的命令不适用于我的gnuplot 4.4(patchlevel 3)。我收到“line 0:invalid command”错误信息。 – Martin

+0

我改变了'echo'xlabel“X-ax标签”; ylabel“Y-ax标签”;绘制[0:14] [0:1000]“source_data_file”,步骤标题为“示例图”;暂停15'| gnuplot'到'echo'设置xlabel“X-ax标签”;设置ylabel“Y轴标签”;绘制[0:14] [0:1000]“source_data_file”,步骤标题为“示例图”;暂停15'| gnuplot',现在它按我的需要工作。谢谢! – Martin