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