8

gnuplot を使用してカラーマップをプロットする場合、通常は次の行を使用します。

  ...
  set palette rgbformulae 33,13,10
  plot "file.dat" using 1:2:3 with points pointtype '7' palette

通常、3 番目のポイント (凡例に表示される) の範囲は、gnuplot によって自動的に設定されます。しかし、どうすればそれを変更できますか?3 番目のポイントの範囲を 0 から 1500 にしたいとします。

助言がありますか?

4

1 に答える 1

13

これは実際には非常に良い質問です-カラーバーの範囲を決定したいということを意味していると仮定します(凡例[つまりキー]ではなく、通常、凡例にはその情報がありません)。

私の最初の考えはでしたset cbrange。これはあなたが望むことをするかもしれません-

set cbrange [0:1500]
set palette rgbformulae 33,13,10
plot "file.dat" u 1:2:3 w p pt 7 palette

ただし、問題は「範囲外の点をどうしたいのか」です。このソリューションは、範囲外のポイントをスケールの下/上に移動します (たとえば、負の数は紫、1500 より大きい数は赤)。私の次の考えは、それらのポイントを切り取ることができるはずだということでしたset zrange [0:1500]-- しかし、それはうまくいきません。この時点で、少なくとも 2 つのオプションがあります。

オプション 1: splot を使用:

set view map
set cbrange [0:1500]
set zrange [0:1500]
set palette rgbformulae 33,13,10
splot "file.dat" u 1:2:3 w p pt 7 palette

境界線は以前とは少し異なりますが、それは大した問題ではありません。

オプション 2:三項演算子でフィルター処理します (前の質問で既に知っていることです):

set cbrange [0:1500]
set palette rgbformulae 33,13,10
inrange(c)=((c>=0) && (c<=1500))? c : (1/0)
plot "file.dat" u 1:2:(inrange($3)) w p pt 7 palette

pm3dまた、カラー マップをプロットする場合は、プロット スタイルを調べることもできます (うまくいく場合もありimageます)。データファイルを少し再構築する必要があるかもしれませんが、カラー マップをプロットすることは、スタイルのパンとバターをプロットすることです。

于 2012-06-13T11:59:32.517 に答える