2012-05-03 13 views
4

私は温度マップを作成しようとしていますが、すべて正常に動作しますが、固定カラーパレットをどのように持つかわかりません。特定の値の固定カラー

実は私はこの持っている:

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℃の場合は青色になりますが、最低温度が+ 25℃の場合は別のマップでも青色になります。

方法Iのような固定されたカラーパネルを定義することができる:最低温度は-20でマップ1における場合、「最低気温10°CIが必要である場合、私は、「水色」とマップ2で必要

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

を黄色。

答えて

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); 
4

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

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

これはfields:::image.plot()

+0

ああ、ありがとうございました。それは簡単で正確に私が期待したものでした。 – Vince

+0

@ user1311058うれしかったです。このQ&Aが正常に終了したことを示すことができる場合は、回答を受け入れるようにしてください。問題が解決したことを他人に知らせる。 FAQの[ここで質問する方法](http://stackoverflow.com/faq#howtoask)を参照してください。 –

+1

@ user1311058受け入れていただきありがとうございますが、あなたの回答はより完全なものであり、受け入れに値します。あなたは自分の答えを投稿する1日後にこれを行うことができます。鉱山の選択を解除して後でそれを受け入れるならば、私は怒らないでしょう。ウェブ上でのプログラミングに最適なリソースを提供することが目的です。 –

関連する問題