image
位於 graphics
包(package)。 說明
創建彩色網格或 gray-scale 矩形,其顏色對應於 z
中的值。這可用於顯示三維或空間數據(也稱為圖像)。這是一個通用函數。
注意:網格默認繪製為一組矩形;請參閱 useRaster
參數將網格繪製為光柵圖像。
函數 hcl.colors
提供了廣泛的順序調色板,適合顯示有序數據,n
給出了所需的顏色數量。
用法
image(x, ...)
## Default S3 method:
image(x, y, z, zlim, xlim, ylim,
col = hcl.colors(12, "YlOrRd", rev = TRUE),
add = FALSE, xaxs = "i", yaxs = "i", xlab, ylab,
breaks, oldstyle = FALSE, useRaster, ...)
參數
x , y |
測量 |
z |
包含要繪製的值的數字或邏輯矩陣(允許 |
zlim |
應繪製顏色的最小和最大 |
xlim , ylim |
繪製的 |
col |
顏色列表,例如由 |
add |
邏輯性;如果 |
xaxs , yaxs |
x 和 y 軸的樣式。默認 |
xlab , ylab |
每個字符串給出 x 和 y 軸的標簽。默認為 |
breaks |
顏色的一組有限數字斷點:必須比顏色多一個斷點,並且按遞增順序排列。未排序的向量將被排序,並帶有警告。 |
oldstyle |
合乎邏輯的。如果為 true,則顏色間隔的中點等距,並且 |
useRaster |
邏輯性;如果 |
... |
|
細節
x
的長度應等於 nrow(z)+1
或 nrow(z)
。在第一種情況下,x
指定單元格之間的邊界:在第二種情況下,x
指定單元格的中點。類似的推理適用於 y
。可能隻有指定等距網格的中點才有意義。如果僅指定一行或一列以及長度為一的 x
或 y
,則相應方向的整個用戶區域將被填充。對於對數 x
或 y
軸,必須指定單元格之間的邊界。
與缺失值相對應的矩形不會被繪製(因此是透明的,並且(除非 add = TRUE
)par("bg")
中繪製的默認背景將顯示出來,如果是透明的,則將看到畫布顏色)。
如果指定了breaks
,則不使用zlim
,並且使用的算法遵循cut
,因此區間在右側封閉,在左側開放,除了兩端封閉的最低區間外。
軸(繪製的位置)使用 xlim
和 ylim
類(因此默認情況下使用 x
和 y
類):這意味著例如日期會被標記為這樣。
請注意,image
將 z
矩陣解釋為 f(x[i], y[j])
值表,因此 x 軸對應於行號,y 軸對應於列號,第 1 列位於底部,即 90 度計數器矩陣的傳統印刷布局的順時針旋轉。
使用 useRaster = TRUE
可以更有效地渲染規則網格上的大型 z
圖像,並且可以防止罕見的抗鋸齒偽影,但可能並非所有圖形設備都支持。某些不支持半透明顏色的設備(例如 postscript
和 X11(type =
"Xlib")
)可能會以白色而不是透明的形式發出缺失值,並且光柵圖像的大小可能存在限製。 (windows()
設備的用戶在遠程桌麵下報告了光柵圖像渲染問題,至少在其默認設置下是如此。)
在此選項下,PDF 和PostScript 中的圖形文件可以小得多。
如果未指定 useRaster
,則當 getOption("preferRaster")
為 true、網格是規則的、dev.capabilities("rasterImage")$rasterImage
是 "yes"
或 "non-missing"
並且沒有缺失值時,使用光柵圖像。
注意
最初基於 Thomas Lumley 的函數。
例子
require("grDevices") # for colours
x <- y <- seq(-4*pi, 4*pi, length.out = 27)
r <- sqrt(outer(x^2, y^2, `+`))
image(z = z <- cos(r^2)*exp(-r/6), col = gray.colors(33))
image(z, axes = FALSE, main = "Math can be beautiful ...",
xlab = expression(cos(r^2) * e^{-r/6}))
contour(z, add = TRUE, drawlabels = FALSE)
# Visualize as matrix. Need to transpose matrix and then flip it horizontally:
tf <- function(m) t(m)[, nrow(m):1]
imageM <- function(m, grid = max(dim(m)) <= 25, asp = (nrow(m)-1)/(ncol(m)-1), ...) {
image(tf(m), asp=asp, axes = FALSE, ...)
mAxis <- function(side, at, ...) # using 'j'
axis(side, at=at, labels=as.character(j+1L), col="gray", col.axis=1, ...)
n <- ncol(m); n1 <- n-1L; j <- 0L:n1; mAxis(1, at= j/n1)
if(grid) abline(v = (0:n - .5)/n1, col="gray77", lty="dotted")
n <- nrow(m); n1 <- n-1L; j <- 0L:n1; mAxis(2, at=1-j/n1, las=1)
if(grid) abline(h = (0:n - .5)/n1, col="gray77", lty="dotted")
}
(m <- outer(1:5, 1:14))
imageM(m, main = "image(<5 x 14 matrix>) with rows and columns")
imageM(volcano)
# A prettier display of the volcano
x <- 10*(1:nrow(volcano))
y <- 10*(1:ncol(volcano))
image(x, y, volcano, col = hcl.colors(100, "terrain"), axes = FALSE)
contour(x, y, volcano, levels = seq(90, 200, by = 5),
add = TRUE, col = "brown")
axis(1, at = seq(100, 800, by = 100))
axis(2, at = seq(100, 600, by = 100))
box()
title(main = "Maunga Whau Volcano", font.main = 4)
也可以看看
filled.contour
或 heatmap
看起來更好(但模塊化程度較低),contour
; image
的 lattice
等效項是 levelplot
。
hcl.colors
、gray.colors
、hcl
、hsv
、par
。
dev.capabilities
查看當前設備是否支持useRaster = TRUE
。
相關用法
- R identify 識別散點圖中的點
- R legend 將圖例添加到繪圖中
- R barplot 條形圖
- R plot.histogram 繪製直方圖
- R points 向繪圖添加點
- R stem 莖葉圖
- R mtext 將文本寫入繪圖的邊距
- R arrows 將箭頭添加到繪圖中
- R contour 顯示輪廓
- R pairs 散點圖矩陣
- R stars 星圖(蜘蛛圖/雷達圖)和線段圖
- R box 在地塊周圍畫一個方框
- R coplot 調節圖
- R smoothScatter 具有平滑密度顏色表示的散點圖
- R mosaicplot 馬賽克圖
- R bxp 從摘要中繪製箱線圖
- R plot.raster 繪製光柵圖像
- R axTicks 計算軸刻度線位置
- R curve 繪製函數圖
- R plot.factor 繪製因子變量
- R sunflowerplot 製作向日葵散點圖
- R plot.table 表對象的繪圖方法
- R units 圖形單位
- R layout 指定複雜的繪圖安排
- R polygon 多邊形繪製
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Display a Color Image。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。