2012-02-09 17 views
1

ここに私のコードと関連する可変構造があります。複数のレイヤ(格子)を持つR - 等高線マップ

Correlation_Plot = contourplot(cor_Warra_SF_SST_JJA, region=TRUE, at=seq(-0.8, 0.8, 0.2), 
labels=FALSE, row.values=(lon_sst), column.values=lat_sst, 
xlab='longitude', ylab='latitude') 

Correlation_Plot = Correlation_Plot + layer({ ok <- (cor_Warra_SF_SST_JJA>0.6); 
      panel.text(cor_Warra_SF_SST_JJA[ok]) }) 
Correlation_Plot 

    # this is the longitude (from -179.5 to 179.5) , 360 data in total 
    > str(lon_sst) 
    num [1:360(1d)] -180 -178 -178 -176 -176 ... 

    # this is the latitude (from -89.5 to 89.5), 180 data in total 
    > str(lat_sst) 
    num [1:180(1d)] -89.5 -88.5 -87.5 -86.5 -85.5 -84.5 -83.5 -82.5 -81.5 -80.5 ... 

    # This is data set corresponding to longitude and latitude 
    > dim(cor_Warra_SF_SST_JJA) 
     [1] 360 180 

enter image description here

私はちょうど0.6よりも大きい輪郭のラベルを表示するためにlayer()を使用しようとしましたが、それは動作しません。

  1. 凡例の色のコントラストを増やすことができますので、どの色がどのレベルに反応するかは本当にわかりますか?色のオプションは何ですか、私はそれらを見つけることができません?

  2. 最も重要なのは、指定した輪郭間隔(たとえば+/- 0.2)に対して太い黒線を描きたいのですか?私はlayer()でもそれをやっていると思うけど、どうすればいいのかは分かりません。

  3. また、私は大陸で色を塗りつぶしてみましたが、何も見つかりませんでした。 マップを使用しようとしましたが、格子に対しては機能しません。

ありがとうございました。

答えて

5

contourplotの追加の引数については、?panel.levelplotを参照してください。

  1. あなたは、あなたの間隔に対応したい色のベクトル、またはカラーランプ機能(例えば以下)のいずれかになりますcol.regions引数を、使用することができます。

  2. で与えられた方法を使用して生成された空間的に自己相関のあるダミーデータセットを使用して、カスタムパネル関数を使用します。マップオブジェクトをプロットするlpolygonを使用します。

    ダミーのデータセットを生成します。

    library(gstat) 
    
    # create structure 
    xy <- expand.grid(1:360, 1:180) 
    names(xy) <- c('x','y') 
    
    # define the gstat object (spatial model) 
    g.dummy <- gstat(formula=z~1, locations=~x+y, dummy=T, beta=1,  
        model=vgm(psill=0.025,model='Exp',range=5), nmax=20) 
    
    # make a simulations based on the gstat object 
    yy <- predict(g.dummy, newdata=xy, nsim=1) 
    gridded(yy) = ~x+y 
    
    # scale to range [-1, 1] 
    z <- matrix([email protected][, 1], ncol=180) 
    z.scalefac <- (max(z) - min(z))/2 
    z <- -1 + (z - min(z))/z.scalefac 
    
  3. プロット:

    library(lattice) 
    library(maps) 
    
    lon_sst <- seq(-179.5, 179.5, 1) 
    lat_sst <- seq(-89.5, 89.5, 1) 
    
    colramp <- colorRampPalette(c('red', 'yellow', 'white', 'green', 'blue')) 
    
    contourplot(z, xlim=c(100, 160), ylim=c(-80, -50), 
        at=seq(-1, 1, 0.2), region=TRUE, col.regions=colramp, 
        row.values=lon_sst, column.values=lat_sst, labels=FALSE, 
        xlab='longitude', ylab='latitude', 
        panel = function(at, region, ...) { 
        panel.contourplot(at=at, region=TRUE, ...) 
        panel.contourplot(at=c(-0.2, 0.2), lwd=2, region=FALSE, ...) 
        mp <- map("world", "antarctica", plot = FALSE, fill=TRUE) 
        lpolygon(mp$x, mp$y, fill=TRUE, col='gray') 
    }) 
    

example output

+0

私のコンピュータでは、 'col.regions = colramp'は動作しませんが、 'color.palette = colorRampPalette(c( "blue"、 "green"、 "white"、 "yellow"、 "red")で置き換えられます) '。本当に役立ちますが、どうすれば大陸を埋めることができますか? –

+0

はい、申し訳ありませんが、私のランプに貼り付けるのを忘れました...答えを編集しました。 – jbaums

+0

土地を更新するように更新しました。 – jbaums

1

Q1:あなたは何をするあなたが前の質問でコンチネンタルアウトラインのために使用したのと同じデータでllinespanel.linesを使用する必要がありますその

Q2:

?panel.contour 

....そのうち、それを"lwd"は利用可能なオプションであり、ベクトルの7番目の要素を2とすると思われます。

Q3:おそらくfill引数ですが、テストでは私たちの努力を真剣に禁じていることに注意する必要がありますソルートデータとデータ準備へのリンクを含まないことで、

+0

任意のincovalence ABT申し訳ありませんが、私はちょうどRの使用を開始2週間は、最初から全部やります。私のためのヘルプページは本当に混乱しています。すべての議論は両方の機能と複数の機能のために働いていますが、いつか議論の後ろに何を置くべきか分かりません。 –

+0

引数はR関数ではすべて標準化されていません。さらに、基本図形、格子(これはcontourplotの一部です)、およびggplot ...混乱のための完璧なレシピです。 –

+0

合意しましたが、私たちがデータを持っていないときはややこしいことです。私が使用したダミーデータセットの生成を含むように私のソリューションを編集しました。最初は – jbaums

関連する問題