2012-03-12 60 views
0

"test1.dat"と "test2.dat"の2つのセットがありますが、それらは同じX値を共有しません。Gnuplot:平滑化された曲線の間の塗りつぶし

データがノイズのために最初に2つの滑らかな線を描きたいのですが、 は滑らかな線の間に塗りつぶした曲線を描きます。

私はチュートリアルを読んだので、答えが見つかりません。

答えて

1

ラファエルロスの答えをピギーバックし、gnuplotのドキュメントを見ると、おそらくX値を共有しないデータセットの小さなシェルマジックでこれを達成できます。これをテストするときに私は気づいた

plot '< tail -r test2.dat | cat test1.dat -' using 1:2 with filledcurves closed 

ことの一つは、あなたがそうでなければtail -rは(tacはおそらくあまりにも仕事と正常に動作しません、あなたはtest2.datの末尾に改行を持っていることを確認してくださいということですが、これは私のMacにインストールされていません。これは、最初のデータファイルを取り込み、2番目のデータファイルを最初のデータファイルに逆順に追加します(最初のデータファイルと2番目のデータファイルがすでに昇順のX値を使用していると仮定しています)。これまでgnuplotが懸念されるとして、データは、我々は、単一の多角形などすべての点を扱いますし、それらを接続するgnuplotのwith filledcurves closedを使用しているため。Xに下降、その後Xで昇順です。限りデータを平滑化として、それは全く別の問題です。見ているだけドキュメントでは、gnuplo tにはいくつかのスムージングアルゴリズムが用意されていますが、データに事前に使用する必要があります。以下は、完全にテストされていないですが、うまくいけばそれが動作しない場合(これはUNIXタイプの環境でも、おそらく唯一の仕事をします)

set table 'smoothed1' 
plot 'test1.dat' using 1:2 smooth beizer #beizer is just an example see "help plot datafile smooth" for more options 
unset table 

set table 'smoothed2' 
plot 'test2.dat' using 1:2 smooth beizer 
unset table 

plot '< tail -r smoothed2 | cat smoothed1 -' using 1:2 with filledcurves closed 

、を見て...取るあなたが望むものに類似したものになりますgnuplotの生成されたファイル「smoothed1」と「smoothed2」とそれはあなたにヒントを与えるかどうかを確認し(例えば、そこを削除する必要があり、余分な改行されている?)

+0

私は "認識されない"滑らかな "オプション" –

+0

のように思われる "beizer"は、 "bezier" –

1

Gnuplotは2つの異なるファイルのデータを使ってプロットを行うことはできません。そのような場合、私は2つのファイルをマージするために "paste"のようなBASHプログラムを呼び出します。

plot '<paste test1.dat test2.dat' u 1:2:4 w filledcurve 

PS(データポイントの数も同じでなければならない)私は2つのファイルがフォーマット「XY」のデータが含まれていると仮定して、彼らは一般的なX-グリッドを共有する:あなたは、Linuxを使用していない場合、私はしないでくださいそれを行う方法を教えてください....

+1

を前にする必要があり2つの異なるファイルをfropm可能です:2'使用して1、 "test2.dat" を使用して 'プロット "test1.dat"各ファイルのデータポイントを反映するグラフを生成します。 – vaettchen

+1

別の問題は、私は2つの滑らかな線を最初に取得したい、データが騒々しい原因です。次に、滑らかな線の間を塗りつぶします。 – toby

+0

Iは、データ処理のために外部プログラム(例えば平滑化)を使用することを好みます。これは、上記の例と同様に使用できる小さなシェル/ python /スクリプトです。しかし、素晴らしい解決策ではありません。このために、より良いパイソン(Gnuplot.py)に組み込まれたgnuplotのを使用するために、そこには1つのスクリプト内でデータ処理のためにnumpyの/ scipyのダウンロードの機能を持っているその... –

0

これは私のために動作します。上のスムージングされた線とx軸の間にある色で最初に塗りつぶし、下の線とx軸の間で白を塗りつぶし、最後に2つの平滑化された線をプロットします。

スムーズCSPLINEは、データをプロットfilledcurve

plot "test1.dat" using ($1):($2) notitle smooth cspline with filledcurve x1 lt rgb "#FFAAAA",\ "test2.dat" using ($1):($2) notitle smooth cspline with filledcurve x1 lt rgb "#FFFFFF",\ "test1.dat" using ($1):($2) notitle w l lw 2 lt 1 lc 0 smooth cspline,\ "test2.dat" using ($1):($2) notitle w l lw 2 lt 1 lc 1 smooth cspline

関連する問題