当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。