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


R image-methods “Matrix”包中的 image() 方法


R语言 image-methods 位于 Matrix 包(package)。

说明

Matrix 中函数 image 的方法。矩阵图像简单地对所有矩阵条目进行颜色编码,并使用(彩色)矩形的 网格绘制 矩阵。

Matriximage 方法基于包 lattice 中的 levelplot() ;因此,这些方法返回类 "trellis" 的 “object” ,在(自动)print() 编辑时生成图形。

用法

 
## S4 method for signature 'dgTMatrix'
image(x,
      xlim = c(1, di[2]),
      ylim = c(di[1], 1), aspect = "iso",
      sub = sprintf("Dimensions: %d x %d", di[1], di[2]),
      xlab = "Column", ylab = "Row", cuts = 15,
      useRaster = FALSE,
      useAbs = NULL, colorkey = !useAbs,
      col.regions = NULL,
      lwd = NULL, border.col = NULL, ...)

参数

x

一个 Matrix 对象,即满足 is(x, "Matrix")

xlim , ylim

x 轴和 y 轴限制;可用于“zoom into”矩阵。请注意, “feel reversed”:ylim 用于行(= 第一个索引),xlim 用于列(= 第二个索引)。为了方便起见,当限制是整数值时,它们都通过 0.5 进行扩展;此外,ylim 的使用量始终在减少。

aspect

纵横比指定为数字 (y/x) 或字符串;请参阅levelplot

sub , xlab , ylab

具有合理默认值的轴注释;请参阅plot.default

cuts

矩阵值范围将划分为的级别数。

useRaster

逻辑指示是否应使用光栅图形(而不是传统的矩形矢量绘图)。如果为 true,则使用 panel.levelplot.raster (来自 lattice 包),并且颜色键也通过光栅完成,另请参阅 levelplot 和可能的 grid.raster

请注意,使用光栅图形通常可能更快,但也可能更慢,具体取决于矩阵尺寸和图形设备(尺寸)。

useAbs

逻辑指示是否应显示abs(x);如果 TRUE ,前一个(隐式)默认值,则默认的 col.regions 将是 grey 颜色(并且不会绘制 colorkey )。默认值为FALSE,除非矩阵没有负项。

colorkey

逻辑指示是否应生成颜色键(又名‘legend’)。默认为绘制一张,除非 useAbs 为 true。您还可以指定 list ,请参阅 levelplot ,例如在光栅化的情况下为 list(raster=TRUE)

col.regions

颜色逐渐变化的矢量;请参阅levelplot

lwd

(仅当 useRaster 为 false 时使用:)非负数或 NULL (默认),指定每个非零矩阵条目的矩形的 line-width (由 grid.rect 绘制)。默认值取决于矩阵维度和设备大小。

border.col

每个矩形边框的颜色。 NA表示不绘制边框。默认情况下NULL 时,使用border.col <- if(lwd < .01) NA else NULL。考虑使用不透明颜色而不是对应于 grid::get.gpar("col")NULL

...

更多参数传递给方法和 levelplot ,特别是 at 用于指定(可能不等距)用于划分矩阵值的切割值(取代上面的 cuts )。

与所有 lattice 图形函数一样,image(<Matrix>) 返回 "trellis" 对象,实际上是 levelplot() 的结果。

方法

当前所有方法最终都会调用 dgTMatrix 类的方法。使用 showMethods(image) 将它们全部列出。

例子


showMethods(image)
## And if you want to see the method definitions:
showMethods(image, includeDefs = TRUE, inherited = FALSE)

data(CAex, package = "Matrix")
image(CAex, main = "image(CAex)") -> imgC; imgC
stopifnot(!is.null(leg <- imgC$legend), is.list(leg$right)) # failed for 2 days ..
image(CAex, useAbs=TRUE, main = "image(CAex, useAbs=TRUE)")

cCA <- Cholesky(crossprod(CAex), Imult = .01)
## See  ?print.trellis --- place two image() plots side by side:
print(image(cCA, main="Cholesky(crossprod(CAex), Imult = .01)"),
      split=c(x=1,y=1,nx=2, ny=1), more=TRUE)
print(image(cCA, useAbs=TRUE),
      split=c(x=2,y=1,nx=2,ny=1))

data(USCounties, package = "Matrix")
image(USCounties)# huge
image(sign(USCounties))## just the pattern
    # how the result looks, may depend heavily on
    # the device, screen resolution, antialiasing etc
    # e.g. x11(type="Xlib") may show very differently than cairo-based

## Drawing borders around each rectangle;
    # again, viewing depends very much on the device:
image(USCounties[1:400,1:200], lwd=.1)
## Using (xlim,ylim) has advantage : matrix dimension and (col/row) indices:
image(USCounties, c(1,200), c(1,400), lwd=.1)
image(USCounties, c(1,300), c(1,200), lwd=.5 )
image(USCounties, c(1,300), c(1,200), lwd=.01)
## These 3 are all equivalent :
(I1 <- image(USCounties, c(1,100), c(1,100), useAbs=FALSE))
 I2 <- image(USCounties, c(1,100), c(1,100), useAbs=FALSE,        border.col=NA)
 I3 <- image(USCounties, c(1,100), c(1,100), useAbs=FALSE, lwd=2, border.col=NA)
stopifnot(all.equal(I1, I2, check.environment=FALSE),
          all.equal(I2, I3, check.environment=FALSE))
## using an opaque border color
image(USCounties, c(1,100), c(1,100), useAbs=FALSE, lwd=3, border.col = adjustcolor("skyblue", 1/2))

if(interactive() || nzchar(Sys.getenv("R_MATRIX_CHECK_EXTRA"))) {
## Using raster graphics: For PDF this would give a 77 MB file,
## however, for such a large matrix, this is typically considerably
## *slower* (than vector graphics rectangles) in most cases :
if(doPNG <- !dev.interactive())
   png("image-USCounties-raster.png", width=3200, height=3200)
image(USCounties, useRaster = TRUE) # should not suffer from anti-aliasing
if(doPNG)
   dev.off()
   ## and now look at the *.png image in a viewer you can easily zoom in and out
}#only if(doExtras)

也可以看看

levelplotprint.trellis 来自包 lattice

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Methods for image() in Package 'Matrix'。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。