Gnuplotスクリプト、既存のプロット内または追加のループ用

StackOverflow https://stackoverflow.com/questions/4062999

  •  27-09-2019
  •  | 
  •  

質問

設定された間隔で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;

レプロットは矢印をプロットします。

あなたが「ただ」行を望んでいて、他に何も望んでいない場合 - あなたは実際にプロットするためにグラフにフィードする必要があります(一連の矢印はカウントされません)。次に、最初の垂直線をプロットするために、あなたが与えた例を使用できます。

お役に立てれば。

トム

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top