当我尝试编写诸如
之类的shell脚本时gnuplot
cd '/home/cagirici/test'
plot "case1.test" with linespoints
并在sudo
中运行,脚本在运行gnuplot后停止。
在每个.test文件中,我有12列。我不会立刻将它们全部绘制出来,而是选择要绘制的内容。例如,如果我选择绘制success percentage
,则应绘制1:2
和1:8
。但是,如果我选择error percentage
,则应该标记1:4
和1:10
(基本上是i:(i+6)
。)
我需要编写一个带有两个输入的脚本:i)文件名ii)要绘制的内容。
请注意,我还想选择线型,点类型和输出shell。 (如果有一个配置将特定的线和点类型设置为默认值,请告诉我这个)
我可以在Ubuntu中编写这个脚本吗?或者我应该使用不同的方法。
我的脚本看起来像
case "$2" in
("success percentage") plot "$1" using 1:2, plot "$1" using 1:8
("error percentage") plot "$1" using 1:4, plot "$1" using 1:10
答案 0 :(得分:2)
您可以通过创建带变量的Gnuplot脚本,然后在运行时从命令行或bash脚本向这些变量传递值来完成此工作。
让我们调用Gnuplot脚本Myscript.gp
:
set terminal pngcairo
set output 'graph.png'
plot file u x:y w linespoints
当您从bash脚本调用Gnuplot时,file
和x:y
可以变为varured。可能对Myscript.gp
的调用如下:
gnuplot -e "x=1;y=2;file = \"mydata.dat\"" Myscript.gp
在您提供的bash脚本的片段中,这可能如下所示:
case "$2" in
("success percentage") gnuplot -e "x=1; y=2; file = \"$1\"" Myscript.gp
下面我还提供了一个虚拟mydata.dat
文件,您可以使用它来尝试。
1.54 23.66 43.66
1.75 26.25 46.25
1.92 30.20 40.20
2.08 34.46 44.46
2.44 42.08 42.08
2.78 46.81 46.81
3.03 51.10 41.10
3.70 52.99 42.99
4.17 56.15 46.15
4.76 59.34 49.34
如果您在bash脚本中计算列号(x
和y
),那么您也可以在plot命令中使用变量。
gnuplot -e "x=$x;y=$y;file = \"mydata.dat\"" Myscript.gp
下面我用一次显示输出:
gnuplot -e "x=1;y=2;file = \"mydata.dat\"" Myscript.gp
一次
gnuplot -e "x=1;y=3;file = \"mydata.dat\"" Myscript.gp
答案 1 :(得分:0)
我在2年前遇到过类似的问题,然后我的高级团队成员决定使用简单的csv编写一个用于绘制图形的工具,并绘制规范和工具将为您绘制图形,
最初它是为linux上的sar数据设计的,因此命名为RSAR,但一般来说它是一个csv绘图仪。) 如果需要,您可以联系我nachiket.kate90@gmail.com