2017-10-17 21 views
2

pm3dマップと繰り返しカラーパレットを連続的に使用して2次元複合関数の位相をプロットすることを計画しています。具体的には、パレットは[-pi、pi]でのみ定義されますが、フェーズ自体はこの範囲外になる可能性があります。これらの値に対してカラーパレットを繰り返す。Gnuplot:範囲外のときにpm3dパレットを繰り返す

私は現在、2 * piの倍数を減算または加算して境界を越えるときに、関数が範囲内にとどまり、反対側から開始するようにしました。 しかし、これは、そのような位相ジャンプが関数内で発生するたびにアーチファクトを引き起こしました。プロットにそれらの青色っぽいピクセルリング注:

Phaseplot

これは、このプロットを生成するために使用されるコードだった:

set pm3d map 
    set palette model HSV defined (0 0 1 1, 1 1 1 1) 
    set samples 100; set isosamples 100 

    set xrange [-4:4] 
    set yrange [-4:4] 
    set cbrange [-pi:pi] 

    set cblabel "Phase" 

    phaseCont(u,v) = 2*pi* ((u/4)**2 + (v/4)**2) 
    phaseClip(u,v) = phaseCont(u,v) - (floor(phaseCont(u,v)/(2*pi) + 0.5) * 2*pi) 

    set terminal png 
    set output "phaseplot.png" 

    splot phaseClip(x,y) with pm3d 

    unset output 

それは理にかなって補間が起こるようにアーティファクトが表示されますが、それはですもちろん、私が行っていることではありません。

カラーパターンを繰り返して美しい2Dプロットを作成する方法はありますか?

+0

デフォルトでpm3dをがすべての四隅間を補間するのでアーティファクトが表示されます:あなたは、常にスムーズな結果を得るために、あなたの関数のサンプリングを増やすことができますので、特にお使いの場合には、問題ではないはずという四角形。あなたはこれを例えば'set pm3d corners2color c1'。それ以外の方法はわかりません。 – Christoph

+0

はい、それは私がそれが起こったと思ったものです。そして、コーナー2色のすばらしいチップがありがとうございました。 そのコメントを回答として投稿してください。正しい回答としてマークすることはできますか? – JCh3ss

答えて

1

Gnuplotは、無限繰り返しカラーパレットを定義できません。あなたの場合、妨害的補間はデフォルトのpm3d補間から来ています。この補間では、四隅の平均を計算して色を決定します(show pm3d参照)。そのような補間の使用を回避するために、例えば、

set pm3d corners2color c1 

1つのコーナーのみから色を決定する。

set pm3d map 
set palette model HSV defined (0 0 1 1, 1 1 1 1) 
set samples 500; set isosamples 500 

set xrange [-4:4] 
set yrange [-4:4] 
set cbrange [-pi:pi] 
set pm3d corners2color c1 

set cblabel "Phase" 

phaseCont(u,v) = 2*pi* ((u/4)**2 + (v/4)**2) 
phaseClip(u,v) = phaseCont(u,v) - (floor(phaseCont(u,v)/(2*pi) + 0.5) * 2*pi) 

set terminal pngcairo 
set output "phaseplot.png" 

splot phaseClip(x,y) with pm3d 

enter image description here

関連する問題