當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R smoothScatter 具有平滑密度顏色表示的散點圖


R語言 smoothScatter 位於 graphics 包(package)。

說明

smoothScatter 生成散點圖的平滑顏色密度表示,通過 (2D) 核密度估計獲得。

用法

smoothScatter(x, y = NULL, nbin = 128, bandwidth,
              colramp = colorRampPalette(c("white", blues9)),
              nrpoints = 100, ret.selection = FALSE,
              pch = ".", cex = 1, col = "black",
              transformation = function(x) x^.25,
              postPlotHook = box,
              xlab = NULL, ylab = NULL, xlim, ylim,
              xaxs = par("xaxs"), yaxs = par("yaxs"), ...)

參數

x, y

xy 參數提供繪圖的 x 和 y 坐標。定義坐標的任何合理方式都是可以接受的。詳細信息請參見函數xy.coords。如果單獨提供,它們的長度必須相同。

nbin

長度為 1(對於兩個方向)或 2(分別對於 x 和 y)的數值向量,指定用於密度估計的等距網格點的數量;直接用作 bkde2D() 中的 gridsize

bandwidth

平滑帶寬的數值向量(長度為 1 或 2)。如果缺少,則使用或多或少有用的默認值。 bandwidth 隨後傳遞給函數 bkde2D

colramp

函數接受整數 n 作為參數並返回 n 顏色。

nrpoints

要疊加在密度圖像上的點數。將繪製區域密度最低區域的前nrpoints 點。在圖中添加點可以識別異常值。如果要繪製所有點,請選擇 nrpoints = Inf

ret.selection

logical 表示如果 nrpoints > 0 則返回 “low density” 點的有序索引。

pch, cex, col

傳遞給 points 的參數,當 nrpoints > 0 時:點符號、字符擴展因子和顏色,另請參見 par

transformation

將密度標度映射到顏色標度的函數。

postPlotHook

NULL 或在 image 之後調用的函數(不帶參數)。

xlab, ylab

用作軸標簽的字符串,傳遞給 image

xlim, ylim

長度為 2 的數值向量指定軸限製。

xaxs, yaxs, ...

更多參數傳遞給 image ,例如 add=TRUEuseRaster=TRUE

細節

smoothScatter 生成散點圖的平滑版本。二維(核密度)平滑由 KernSmooth 包中的 bkde2D 執行。有關如何將此函數與 pairs 一起使用的示例,請參閱示例。

如果 ret.selection 為 true,則為長度為 nrpoints 的整數向量(如果 xlimylim 內部有限點較少,則更小),並繪製 low-density 點的索引,以最低密度排序第一的。

例子


## 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), mar=.1+c(3,3,1,1), mgp = c(1.5, 0.5, 0))
smoothScatter(x, nrpoints = 0)
smoothScatter(x)

## a different color scheme:
Lab.palette <- colorRampPalette(c("blue", "orange", "red"), space = "Lab")
i.s <- smoothScatter(x, colramp = Lab.palette,
                     ## pch=NA: do not draw them
                     nrpoints = 250, ret.selection=TRUE)
## label the 20 very lowest-density points,the "outliers" (with obs.number):
i.20 <- i.s[1:20]
text(x[i.20,], labels = i.20, cex= 0.75)

## somewhat similar, using identical smoothing computations,
## but considerably *less* efficient for really large data:
plot(x, col = densCols(x), pch = 20)

## use with pairs:
par(mfrow = c(1, 1))
y <- matrix(rnorm(40000), ncol = 4) + 3*rnorm(10000)
y[, c(2,4)] <-  -y[, c(2,4)]
pairs(y, panel = function(...) smoothScatter(..., nrpoints = 0, add = TRUE),
      gap = 0.2)

par(oldpar)

作者

Florian Hahne at FHCRC, originally

也可以看看

bkde2D 來自包 KernSmooth densCols 使用相同的平滑計算和包 grDevices 中的 blues9

scatter.smoothloess 回歸平滑器添加到散點圖。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Scatterplots with Smoothed Densities Color Representation。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。