1

これが私のコードと関連する変数構造です。

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

ここに画像の説明を入力してください

layer()0.6より大きい輪郭のラベルを表示するために使用しようとしましたが、機能しません。

  1. 凡例の色のコントラストを上げて、どの色がどのレベルに反応するかを本当に明確にすることは可能ですか?カラーオプションとは何ですか、見つかりませんか?

  2. 最も重要なのは、指定された等高線間隔(たとえば、+ /-0.2)に対して太い黒い線を描画したいですか?icanもそうだと思いますlayer()が、どのpanel関数を使うべきかわかりません。

  3. また、大陸を無地で塗りつぶそうとしましたが、何も見つかりませんでした。マップを使用してみましたが、ラティスでは機能しません。

ご協力いただきありがとうございます。

4

2 に答える 2

5

?panel.levelplotへの追加の引数を見てくださいcontourplot

  1. 引数を使用できます。このcol.regions引数は、間隔に対応させたい色のベクトル、またはカラーランプ関数(以下など)のいずれかを取ります。

  2. このようなカスタムパネル関数を使用します( SantiagoBegueríaのブログで提供されている方法を使用して生成された空間的に自己相関のあるダミーデータセットを使用します)。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(yy@data[, 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')
    })
    

出力例

于 2012-02-09T04:03:31.650 に答える
1

Q1:それを行うには、前の質問で大陸の輪郭に使用したのと同じデータを使用llinesする必要がありますpanel.lines

Q2:

?panel.contour

....ここで、「lwd」は使用可能なオプションであり、vector=2の7番目の要素を作成すると思われます。

Q3:おそらく議論の余地がありますが、データへのリンクとデータの準備を含めないことで、ソリューションのテストにおける私たちの取り組みを真剣に阻害していることに注意する必要があります。

于 2012-02-09T02:40:25.607 に答える