5

温度マップを作成しようとしていますが、すべて正常に動作しますが、カラー パレットを固定する方法がわかりません。

実際に私はこれを持っています:

rgb.palette <- colorRampPalette(c("blue","green","yellow","orange","red"), 
                                space = "Lab")

image.plot(akima.smooth, 
           col = rgb.palette(NBR.COLORS), 
           main=main_title, 
           horizontal=TRUE,
           axes=TRUE)

このソリューションは機能しますが、ペイントされる色は常に青から赤です。

たとえば、マップの最低気温が -10°C の場合、色は青になりますが、別のマップでは最低気温が +25°C の場合、その色も青になります。

次のような固定カラーパネルを定義するにはどうすればよいですか:

-30°C => blue
-20°C => light blue
-10°C => dark green
  0°C => green
 10°C => yellow

マップ 1 の最低気温が -20 の場合は「水色」が必要で、マップ 2 の最低気温が 10°CI の場合は「黄色」の色が必要です。

4

2 に答える 2

4

その場合はfields:::image.plot()、関数の引数を参照してください?image。特に、breaks入力データをプロット用のクラスに分割するために使用されるカットポイントの境界の値を設定するには、引数が必要です。

表示されている問題は、設定しないと、入力データの範囲breaksにカラーパレットが適用されていることです。設定すると、カラーパレットは必要な全範囲にマッピングされ、データはグループに割り当てられるため、ブレークポイントによって定義される色になります。breaks

これがない場合の例は含まれていませんfields:::image.plot()

于 2012-05-03T20:29:02.533 に答える
2

私はこの解決策を使用しました:

col = colorRampPalette(c("darkmagenta","blue","green","yellow","orange","red"),
                       space="Lab")(NBR.COLORS) 
breaks = c(seq(-35, 10, length.out=NBR.COLORS/2), 10, 
           seq(10, 35, length.out=NBR.COLORS/2))
image.plot(akima.smooth, col=col, breaks=breaks, main=main_title,
           horizontal=TRUE,axes=TRUE);
于 2012-05-04T06:48:53.937 に答える