contour
位于 graphics
包(package)。 说明
创建等高线图,或将等高线添加到现有图。
用法
contour(x, ...)
## Default S3 method:
contour(x = seq(0, 1, length.out = nrow(z)),
y = seq(0, 1, length.out = ncol(z)),
z,
nlevels = 10, levels = pretty(zlim, nlevels),
labels = NULL,
xlim = range(x, finite = TRUE),
ylim = range(y, finite = TRUE),
zlim = range(z, finite = TRUE),
labcex = 0.6, drawlabels = TRUE, method = "flattest",
vfont, axes = TRUE, frame.plot = axes,
col = par("fg"), lty = par("lty"), lwd = par("lwd"),
add = FALSE, ...)
参数
x, y |
测量 |
z |
包含要绘制的值的矩阵(允许 |
nlevels |
当未提供 |
levels |
绘制等高线的级别的数字向量。 |
labels |
给出轮廓线标签的向量。如果 |
labcex |
|
drawlabels |
合乎逻辑的。如果 |
method |
指定标签所在位置的字符串。可能的值为 |
vfont |
如果 |
xlim, ylim, zlim |
绘图的 x-、y- 和 z-limits。 |
axes, frame.plot |
指示是否应绘制轴或框的逻辑,请参阅 |
col |
绘制线条的颜色。 |
lty |
所绘制线条的线条类型。 |
lwd |
所绘制线条的线宽。 |
add |
合乎逻辑的。如果是 |
... |
|
细节
contour
是一个通用函数,在基类中只有一个默认方法R.
在等高线上定位标签的方法是"simple"
(在图的边绘制,覆盖等高线),"edge"
(在图的边绘制,嵌入等高线中,没有标签重叠)和"flattest"
(在轮廓的最平坦部分上绘制,嵌入轮廓线中,没有标签重叠)。第二个和第三个可能不会在每条轮廓线上绘制标签。
有关矢量字体的信息,请参阅 text
和 Hershey
的帮助。
请注意,contour
将 z
矩阵解释为 f(x[i], y[j])
值表,因此 x 轴对应于行号,y 轴对应于列号,第 1 列位于底部,即 90 度计数器传统文本布局的顺时针旋转。
向量(长度为 col
、 lty
和 lwd
沿着 levels
应用并回收,请参阅示例。 )
或者,使用 lattice
包中的 contourplot
,其中 formula
表示法允许使用相同长度的向量 x
、 y
和 z
。
对轴和框架的控制有限,因为参数 col
、 lwd
和 lty
指的是轮廓线(而不是一般的 graphical parameters )。要进行更多控制,请向绘图添加等值线,或向等值线图添加轴和框架。
例子
require(grDevices) # for colours
x <- -6:16
op <- par(mfrow = c(2, 2))
contour(outer(x, x), method = "edge", vfont = c("sans serif", "plain"))
z <- outer(x, sqrt(abs(x)), FUN = `/`)
image(x, x, z)
contour(x, x, z, col = "pink", add = TRUE, method = "edge",
vfont = c("sans serif", "plain"))
contour(x, x, z, ylim = c(1, 6), method = "simple", labcex = 1,
xlab = quote(x[1]), ylab = quote(x[2]))
contour(x, x, z, ylim = c(-6, 6), nlevels = 20, lty = 2, method = "simple",
main = "20 levels; \"simple\" labelling method")
par(op)
## Passing multiple colours / lty / lwd :
op <- par(mfrow = c(1, 2))
z <- outer(-9:25, -9:25)
## Using default levels <- pretty(range(z, finite = TRUE), 10),
## the first and last of which typically are *not* drawn:
(levs <- pretty(z, n=10)) # -300 -200 ... 600 700
contour(z, col = 1:4)
## Set levels explicitly; show that 'lwd' and 'lty' are recycled as well:
contour(z, levels=levs[-c(1,length(levs))], col = 1:5, lwd = 1:3 *1.5, lty = 1:3)
par(op)
## Persian Rug Art:
x <- y <- seq(-4*pi, 4*pi, length.out = 27)
r <- sqrt(outer(x^2, y^2, `+`))
opar <- par(mfrow = c(2, 2), mar = rep(0, 4))
for(f in pi^(0:3))
contour(cos(r^2)*exp(-r/f),
drawlabels = FALSE, axes = FALSE, frame.plot = TRUE)
rx <- range(x <- 10*1:nrow(volcano))
ry <- range(y <- 10*1:ncol(volcano))
ry <- ry + c(-1, 1) * (diff(rx) - diff(ry))/2
tcol <- terrain.colors(12)
par(opar); opar <- par(pty = "s", bg = "lightcyan")
plot(x = 0, y = 0, type = "n", xlim = rx, ylim = ry, xlab = "", ylab = "")
u <- par("usr")
rect(u[1], u[3], u[2], u[4], col = tcol[8], border = "red")
contour(x, y, volcano, col = tcol[2], lty = "solid", add = TRUE,
vfont = c("sans serif", "plain"))
title("A Topographic Map of Maunga Whau", font = 4)
abline(h = 200*0:4, v = 200*0:4, col = "lightgray", lty = 2, lwd = 0.1)
## contourLines produces the same contour lines as contour
plot(x = 0, y = 0, type = "n", xlim = rx, ylim = ry, xlab = "", ylab = "")
u <- par("usr")
rect(u[1], u[3], u[2], u[4], col = tcol[8], border = "red")
contour(x, y, volcano, col = tcol[1], lty = "solid", add = TRUE,
vfont = c("sans serif", "plain"))
line.list <- contourLines(x, y, volcano)
invisible(lapply(line.list, lines, lwd=3, col=adjustcolor(2, .3)))
par(opar)
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
options("max.contour.segments")
用于单个轮廓线的最大复杂度。
contourLines
、 filled.contour
用于 color-filled 轮廓, contourplot
(和 levelplot
)来自包 lattice
。此外,image
和图形演示可以作为 demo(graphics)
调用。
相关用法
- R convertXY 图形坐标系之间的转换
- R coplot 调节图
- R curve 绘制函数图
- R clip 设置剪切区域
- R cdplot 条件密度图
- R legend 将图例添加到绘图中
- R barplot 条形图
- R plot.histogram 绘制直方图
- R points 向绘图添加点
- R stem 茎叶图
- R mtext 将文本写入绘图的边距
- R arrows 将箭头添加到绘图中
- R pairs 散点图矩阵
- R stars 星图(蜘蛛图/雷达图)和线段图
- R box 在地块周围画一个方框
- R smoothScatter 具有平滑密度颜色表示的散点图
- R mosaicplot 马赛克图
- R bxp 从摘要中绘制箱线图
- R plot.raster 绘制光栅图像
- R axTicks 计算轴刻度线位置
- R plot.factor 绘制因子变量
- R sunflowerplot 制作向日葵散点图
- R plot.table 表对象的绘图方法
- R units 图形单位
- R identify 识别散点图中的点
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Display Contours。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。