Rの「ラスタ」パッケージを使用してラスタファイルからいくつかのマップを作成しています。複数のマップを並べて表示する比較ラスタを作成したいと思います。このためには、各マップの値に関係なく、使用されるカラースケールがすべてのマップで同じであることが重要です。たとえば、マップ1に0〜1の値があり、マップ2に0〜0.5の値がある場合、値0.5のセルは両方のマップで同じ色になるはずです。例えば同じカラースケールのラスタプロットを作成するにはR
:
- マップ1、マップ2は、色が緑色に(最低)赤から移行0から0.5
- の値(最高) を有する
- 0から1までの値を有しています
私は0.5の値を両方のマップ(つまり、赤と緑の中間の黄色)で同じ色にしたいと思います。現在の動作は、地図1では黄色、地図2では緑色です。
この作業を行う方法はありません。プロット関数で使用するピクセル値の範囲を設定する方法はありません。 setMinMax()は助けになりません( 'plot'は常に値を計算するため)。手動で値を設定しようとしても(例:g1 @ data @ max < - 10)、これは機能しません(プロット時は無視されます)。
最後に、マップのスタックを作成すると(同じ色のスケールですべてをプロットすると思われる)、どちらのマップも機能しません。各マップには独自のカラースケールがあります。
これを行う方法についてのご意見はありますか?
編集:私は使用して終了
解決策は以下のとおりです。
plot(d, col=rev(rainbow(99, start=0,end=1)), breaks=seq(min(minValue(d)),max(maxValue(d)),length.out=100))
あなたが解決したソリューションは、実際には最高の答えです。答えとして入れて受け入れてください!私はほとんどそれを逃した - 私は質問で答えを探すことはありません。 – TMS
'spplot'はすべてのレイヤーのグローバル凡例を含む' RasterStack'を表示します。 'raster'パッケージは' spplot'のメソッドを定義していますので、 'RasterStack'を' Spatial * 'オブジェクトに変換する必要はありません。 –