8

関数を使用して、Rで色濃度散布図を作成していsmoothScatter()ます。

例:

## A largish data set
n <- 10000
x1  <- matrix(rnorm(n), ncol = 2)
x2  <- matrix(rnorm(n, mean = 3, sd = 1.5), ncol = 2)
x   <- rbind(x1, x2)
oldpar <- par(mfrow = c(2, 2))
smoothScatter(x, nrpoints = 0)

出力:

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

私が抱えている問題は、異なる色合い間の数値の相対的な違いを説明する凡例/カラースケールを追加する方法がわからないことです。たとえば、上の図の最も暗い青が、なんらかの凡例やカラースケールなしでは、最も明るい青の2倍、10倍、または100倍の濃度であるかどうかを判断する方法はありません。Rに、そのようなスケールを作成するために必要な情報を取得する方法、またはこの性質のカラースケールを自動的に生成できる組み込みの方法はありますか?

4

1 に答える 1

10

これは、マージンを正しくするために依存しfields::imageplot、いじくり回す答えです。par(mar)

fudgeit <- function(){
  xm <- get('xm', envir = parent.frame(1))
  ym <- get('ym', envir = parent.frame(1))
  z  <- get('dens', envir = parent.frame(1))
  colramp <- get('colramp', parent.frame(1))
  fields::image.plot(xm,ym,z, col = colramp(256), legend.only = T, add =F)
}

par(mar = c(5,4,4,5) + .1)
smoothScatter(x, nrpoints = 0, postPlotHook = fudgeit)

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

image.plotをいじって、必要なものを取得し、色が何を表しているのかを理解するため?bkde2Dtransformation引数を取得できます。smoothScatter

于 2013-01-11T06:11:23.987 に答える