4

カテゴリ値 (-1,0,1) または levelplot でプロットしたい偏った分布を持ついくつかの値を持つラスター オブジェクトがあります。負の値には正の値とは異なる色を使用し、0 付近の値には白色を使用したいと考えています。間隔が等間隔でなく、範囲が非常に狭い場合があるため、目盛りにはいくつかの個別のステップのみを表示する必要があります。私が使う

colorkey=list(at=c(), labels=c())

levelplot に引数を渡します。これはスケールでは機能しますが、実際の値の色分けはスケールが表示するものと同じではありません。引数を使用する場合

で=c()

単に、スケール値とラティスの値が対応しています。個別に追加するlabels=c()と、縮尺では表示されず、等高線でのみ表示されます。だから私の質問:

スケールにラベルを付けて「at」に設定し、ラティスの値を同時にスケールの値に対応させるにはどうすればよいですか? 以下にデータの例を示します。

library(raster)
library(colorspace)
library(rasterVis)
X <- raster(nrow=10,ncol=10)
set.seed(1)
X[] <- rchisq(df=10,n=10*10)*c(1,-1)
X[X[]>0] <- X[X[]>0]+seq(1,100,length.out=length(X[X[]>0]))
Uniques <- cellStats(X,stat=unique)
Uniques.max <- max(Uniques)
Uniques.min <- min(Uniques)
Acol.regions <- colorspace::diverge_hsv(n=9)

カラーキーを使用する場合:

levelplot(X, col.regions = Acol.regions,colorkey=list(
  at=round(c(seq(Uniques.min,0,length.out=5)[-5],0,seq(0,Uniques.max,length.out=5)[-1]),2),
  labels=as.character(round(c(seq(Uniques.min,0,length.out=5)[-5],0,seq(0,Uniques.max,length.out=5)[-1]),2)*2)),
          margin=F)

スケールを表示する正しい方法で終了しますが、格子の値は間違って色付けされています: ラティスのスケールは正しいが値が間違っている

私が別々に渡す場合at=c(), labels=c()

levelplot(X, col.regions = Acol.regions,
  at=round(c(seq(Uniques.min,0,length.out=5)[-5],0,seq(0,Uniques.max,length.out=5)[-1]),2),
  labels=as.character(round(c(seq(Uniques.min,0,length.out=5)[-5],0,seq(0,Uniques.max,length.out=5)[-1]),2)*2),
          margin=F)

スケールとラティスに対応する値が表示されますが、ラベルは表示されません。 ここに画像の説明を入力

よろしく、 エリック

4

1 に答える 1

4

at=c()解決済み:引数を 2 回述べました。levelplot で直接、次に colorkey-list で

levelplot(X, col.regions = Acol.regions,at=round(c(seq(Uniques.min,0,length.out=5)[-5],0,seq(0,Uniques.max,length.out=5)[-1]),2),
          colorkey=list(
  at=round(c(seq(Uniques.min,0,length.out=5)[-5],0,seq(0,Uniques.max,length.out=5)[-1]),2),
  labels=as.character(round(c(seq(Uniques.min,0,length.out=5)[-5],0,seq(0,Uniques.max,length.out=5)[-1]),2)*2)),
          margin=F)

試してみたかもしれない人に感謝します。エリック

于 2013-06-18T13:18:10.353 に答える