1

gnuplot で等高線図を描きたいのですが、特別な色でいくつかの特別な機能を指摘したいと思っています。

等高線図を次のように定義します

set pm3d map
set palette defined (-1 "red", -0.1 "red", 0 "white", 0.1 "blue", 1 "blue")

これにより、赤から白、青へのグラデーションを持つ小さな領域を持つ色のグラデーションが生成され、残りの部分は負の数の場合は赤、正の数の場合は青になります。

私の問題は、gnuplot を自動的に z 軸の対称スケーリングに設定したいということです。しかし、splot [][][-200:200] 'data' u 1:2:3たとえば -300 から 100 までの値を持つデータセットを指定すると、gnuplot は自動的に再スケーリングを[-200:100]行い、その結果、カラースケールがずれてしまいます (白い領域は現在約 -50 です)。

zrange自動的に対称にスケーリングされた軸を強制または取得する方法はありますか?

4

2 に答える 2

2

z範囲を強制するには、試してください

set zr [-200:200]

プロットコマンドの前。軸を自動的にスケーリングするには、おそらく を使用して何かを調理できますstats。主な秘訣は、カラーバーが相対的な単位であることを覚えておくことです. このようなもの(テストされていません):

datafile = 'data.dat'

stats datafile u 3 nooutput

# assume you want some data positive and some negative
if (stats_max*stats_min > 0) {
 print 'WARNING: all data has same sign.  Color bars may be weird.'
}

z0 = -1*min(abs(0.1*stats_min),abs(0.1*stats_max))
z1 = 0.0
z2 = -1*z0

set palette defined (stats_min "red", z0 "red", z1 "white",
                     z2 "blue", stats_max "blue")
于 2013-05-21T12:47:03.563 に答える