2017-09-20 60 views
0

我有一个非常长的,也可能是一个非常令人生畏的问题。我有一个trial.csv文件看起来是这样的:使用gnuplot在shell脚本中绘图

ForceX ForceY Temp Speed Theta Height 
9.724 10.504 88.041 0.7  1  1100 
13.938 10.841 99.918 0.7  2  1100 
8.771 10.719 75.8  0.8  1  1100 
12.71 11.027 85.214 0.8  2  1100 

对于每一个速度值有两套ForceX,ForceY,温度和Theta值。我想绘制ForceX对速度= 0.7和速度= 0.8的Theta。如果只有两个θ值,那么这很容易,我可以使用plot "<(sed -n '2,3p' trial.csv)" using 2:1 with linespoints title ""来表示相应的速度。

但θ值从-2到+2变化,速度范围从0.6到0.9。所以现在我有5组速度值。 (trial.csv使用速度作为外部循环和Theta作为内部循环的'for'循环生成)。

如何在单独绘图中绘制每个速度值的ForceX范围和Theta?我对shell脚本很陌生,现在还没有找到一个合适的解决方案。我希望我的问题清楚。感谢您的帮助。谢谢。

问候, 嗖

回答

0

没有必要使用shell脚本,你可以做到这一点与GNU情节的using指令要容易得多。例如,绘制ForceXTheta只有那些记录,Speed为0.7,使用

plot "trial.csv" u 5:($4 == 0.7 ? $1 : 1/0) title "Speed 0.7" w lp 

如果你想绘制为Speed多个值曲线尝试

plot for [speed in "0.7 0.8"] "trial.csv" u 5:($4 == speed ? $1 : 1/0) title "Speed ".speed w lp 
+0

感谢您的答复:DI找到了解决方法。 –