質問
設定された間隔でGnuplotで一連の垂直線をプロットしたいと思います。
プロットに関するいくつかの情報。
プロットは、主に.datファイルからのデータです。 Gnuplotスクリプトは、SEDを使用してGNUプロットスクリプトを変更するBASHスクリプトによって呼び出されます。これは古いバッシュスクリプトのスニピットです(醜いです)。
sed -i 's/C = CONCEHOLD/C = '${$CO}'/g' $GNUPLOTROOT/plotviscosity.plt
gnuplot $GNUPLOTROOT/plotviscosity.plt
mv my-plot.ps $VISCPLOTNAME
sed -i 's/C = '${$CO}'/C = CONCEHOLD/g' $GNUPLOTROOT/plotviscosity.plt
とともに 。このように見えるpltファイル。
set title "Viscosity vs Time, C = CONCEHOLD, beta = RATHOLD, zeta = ZETAHOLD"
set xlabel "Time"
set ylabel "Viscosity"
plot "viscout.dat" using 3:2 title 'Viscosity'
# Saving to my-plot.ps
load save.plt
#
このプロットに、セットの繰り返し間隔で一連の垂直線を追加したいと思います。垂直線を介してプロットする方法を見つけました http://t16web.lanl.gov/kawano/gnuplot/parametric-e.html
set parametric
const=3
set trange [1:4]
set xrange [0:5]
set yrange [0:5]
plot const,t
私はを頂きたい
const=repititionperiod*i
私は(1、計算されたuppedlimit)に属する整数です。
SEDを介して再びrepititionperiodを入力し、同様の無駄に計算されたuppedlimitで入力できますが、gnuplotまたは別のGnuplotスクリプト内のループには何らかのループが必要です。
GNUプロット内のループに関する情報が見つかりません。また、以前に作成されたプロットに追加できません。
アドバイスは感謝しています。
解決
編集: gnuplotは実際にループをサポートしています、あなたはそれについて読むことができます ここ
私は理解しているので、gnuplotにはループ用のものがありませんが、次のような種類の1つを生成できます。
ファイル「loop.gp」を含む
const = const + 1
#... some gnuplot commands ...
if(const<100) reread
次に、gnuplot端末、またはスクリプト書き込みで、
const = 3; load "loop.gp";
これにより、シンプルなループが得られます。
(この例は、その他のセクションから取られています。 http://t16web.lanl.gov/kawano/gnuplot/index-e.html)
あなたの特定の答えについては、例えば、並列線ではなく矢印を追加してみてください。
set arrow from const,1 to const,4 nohead
ほぼ同じことをします。
この場合、GPがloop.gpになる可能性があります
const = const + repititionperiod
#... some gnuplot commands ...
set arrow from const,1 to const,4 nohead
if(const<calculatedupperlimit) reread
そして、あなたはあなたをループで実行します
const = 1; repititionperiod=2;calculatedupperlimit = 10; load "loop.gp"; replot;
レプロットは矢印をプロットします。
あなたが「ただ」行を望んでいて、他に何も望んでいない場合 - あなたは実際にプロットするためにグラフにフィードする必要があります(一連の矢印はカウントされません)。次に、最初の垂直線をプロットするために、あなたが与えた例を使用できます。
お役に立てれば。
トム