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


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'。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。