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


R levelplot 水平图和等高线图


R语言 levelplot 位于 lattice 包(package)。

说明

绘制假彩色水平图和等高线图。

用法

levelplot(x, data, ...)
contourplot(x, data, ...)

## S3 method for class 'formula'
levelplot(x,
          data,
          allow.multiple = is.null(groups) || outer,
          outer = TRUE,
          aspect = "fill",
          panel = if (useRaster) lattice.getOption("panel.levelplot.raster")
                  else lattice.getOption("panel.levelplot"),
          prepanel = NULL,
          scales = list(),
          strip = TRUE,
          groups = NULL,
          xlab,
          xlim,
          ylab,
          ylim,
          at,
          cuts = 15,
          pretty = FALSE,
          region = TRUE,
          drop.unused.levels =
              lattice.getOption("drop.unused.levels"),
          ...,
          useRaster = FALSE,
          lattice.options = NULL,
          default.scales = list(),
          default.prepanel =
              lattice.getOption("prepanel.default.levelplot"),
          colorkey = region,
          col.regions,
          alpha.regions,
          subset = TRUE)

## S3 method for class 'formula'
contourplot(x,
            data,
            panel = lattice.getOption("panel.contourplot"),
            default.prepanel =
                lattice.getOption("prepanel.default.contourplot"),
            cuts = 7,
            labels = TRUE,
            contour = TRUE,
            pretty = TRUE,
            region = FALSE,
            ...)

## S3 method for class 'table'
levelplot(x, data = NULL, aspect = "iso", ..., xlim, ylim)

## S3 method for class 'table'
contourplot(x, data = NULL, aspect = "iso", ..., xlim, ylim)

## S3 method for class 'matrix'
levelplot(x, data = NULL, aspect = "iso",
          ..., xlim, ylim,
          row.values = seq_len(nrow(x)),
          column.values = seq_len(ncol(x)))

## S3 method for class 'matrix'
contourplot(x, data = NULL, aspect = "iso",
            ..., xlim, ylim,
            row.values = seq_len(nrow(x)),
            column.values = seq_len(ncol(x)))


## S3 method for class 'array'
levelplot(x, data = NULL, ...)

## S3 method for class 'array'
contourplot(x, data = NULL, ...)


参数

x

对于 formula 方法,采用 z ~ x * y | g1 * g2 * ... 形式的公式,其中 z 是数字响应,xy 是在矩形网格上计算的数值。 g1, g2, ... 是可选条件变量,并且必须是因子或带状疱疹(如果存在)。

计算基于以下假设:所有 x 和 y 值均在网格上计算(由其唯一值定义)。如果不成立,该函数不会返回错误,但显示可能没有意义。然而,x 和 y 值不需要等距。

levelplotwireframe 都有 matrixarraytable 对象的方法,在这种情况下,x 提供上述 z 向量,而其行和列被解释为分别为xy 向量。这类似于 filled.contourimage 中使用的形式。对于更高维的数组和表,更高的维度被用作条件变量。请注意,暗名可能会重复;这是通过调用 make.unique 来处理的,以使名称唯一(尽管原始标签用于 x 轴和 y 轴)。

data

对于 formula 方法,一个可选 DataFrame ,其中将评估公式中的变量(以及 groupssubset,如果有的话)。在其他情况下通常会被忽略并发出警告。

row.values , column.values

x 是矩阵时定义网格的可选值向量。 row.valuescolumn.values 必须分别与nrow(x)ncol(x) 具有相同的长度。默认情况下,行号和列号。

panel

用于创建显示的面板函数,如xyplot中所述

aspect

对于matrix 方法,选择默认的宽高比以使每个单元格成为正方形。通常的默认值是 aspect="fill" ,如 xyplot 中所述。

at

沿 z 范围给出断点的数值向量。轮廓(如果有)将在这些高度绘制,并且之间的区域将使用 col.regions 着色。在后一种情况下,at 范围之外的值根本不会被绘制。这是限制显示数据范围的一种方式,类似于 zlim 参数的用途。然而,这也意味着在显式提供 at 时,必须小心包含 z 范围之外的值,以确保显示所有数据。

仅当 region=FALSE 时,at 的长度才能为 1。

col.regions

如果 Regions 为 TRUE,则使用颜色向量。总体思路是,这应该是一个长度适中的颜色向量(比区域数量长。默认情况下为 100)。预计该矢量的颜色将逐渐变化(以便附近的颜色相似)。当实际选择颜色时,它们被选择为沿着该向量等距分布。当 col.regions 中的区域多于颜色时,颜色将被回收。实际的颜色分配是由 level.colors 执行的,它是单独记录的。

alpha.regions

数字,指定 alpha 透明度(仅适用于某些设备)

colorkey

指定是否在绘图旁边绘制颜色键的逻辑标志,或说明颜色键的列表。该列表可能包含以下组件:

space

colorkey 的位置,可以是 "left""right""top""bottom" 之一。默认为 "right"

xy

位置,目前未使用

col

色带规范,如 level.colors 中的 col.regions 参数

at

指定颜色变化位置的数值向量。长度必须比 col 向量大 1。

tri.lowertri.upper

逻辑或数字控制第一个和最后一个间隔是否应该是三角形而不是矩形。使用默认值 ( NA ),仅当相应的极端 at 值分别为 -InfInf 并且三角形占据色键总长度的 5% 时,才会发生这种情况。如果是数字且介于 0 和 0.25 之间,则给出相应的分数,当指定为 TRUE 时,该分数又为 5%。

labels

用于标记 at 值的字符向量,或更常见的是说明标签特征的列表。该列表可以包括组件 labelsatcexcolrotfontfontfacefontfamily

title

通常是为颜色键提供标题的字符向量或表达式,或者更详细地控制标题的列表,或者任意 "grob" 。有关如何解释列表形式的详细信息,请参阅 xyplot 中的 main 条目;一般来说,实际标签应指定为 label 组件(如果它是第一个组件,则可能未命名),其余参数在调用 textGrob 时酌情使用。

通过组件 title.control 可以进一步控制标题的位置。特别是,如果未指定 rot 组件,则其默认值取决于 title.control$side 的值(0 表示顶部或底部,90 表示左侧或右侧)。

title 默认为 NULL ,这意味着不绘制标题。

title.control

提供对标题位置的控制的列表(如果指定)。目前支持两个组件: side 可以采用值 "top""bottom""left""right" ,并指定要放置标题的颜色键的一侧。默认为 "space" 组件的值。 padding 是标题和颜色键之间默认填充量的乘数。

tick.number

所需的大致刻度数。

tck

刻度长度的(标量)乘数。

corner

与x、y相互作用;目前尚未实施

width

键的宽度

height

键的长度作为绘图相应边的分数。

raster

一个逻辑标志,指示是否应使用 grid.raster 将颜色键渲染为光栅图像。另请参阅panel.levelplot.raster

interpolate

逻辑标志,当 raster=TRUE 时传递给 rasterGrob

axis.line

给出色键边界和刻度线图形参数的列表。默认为 trellis.par.get("axis.line")

axis.text

提供颜色键上刻度线标签图形参数的列表。默认为 trellis.par.get("axis.text")

contour

逻辑标志,指示是否绘制等高线。

cuts

z 范围将分为的级别数。

labels

通常是指示是否应标记等高线的逻辑,但存在更复杂控制的其他可能性。详细信息记录在 panel.levelplot 的帮助页面中,该参数不变地传递给该页面。该帮助页面还记录了 label.style 参数,该参数会影响标签的呈现方式。

pretty

一个逻辑标志,指示是否使用漂亮的剪切位置和标签。

region

逻辑标志,指示是否应像水平图中那样填充等高线之间的区域。

allow.multiple , outer , prepanel , scales , strip , groups , xlab , xlim , ylab , ylim , drop.unused.levels , lattice.options , default.scales , subset

这些参数在 xyplot 的帮助页面中进行了说明。

default.prepanel

后备预面板函数。请参阅xyplot

...

可以提供进一步的参数。有些由 levelplotcontourplot 处理,而那些无法识别的则传递给面板函数。

useRaster

一个逻辑标志,指示是否应该对伪彩色图像和颜色键(如果存在)使用光栅表示。实际上,将其设置为 TRUE 会将默认面板函数从 panel.levelplot 更改为 panel.levelplot.raster ,并将 colorkey$raster 的默认值设置为 TRUE

请注意, panel.levelplot.raster 仅提供 panel.levelplot 函数的子集,但设置 useRaster=TRUE 不会检查是否已请求任何其他函数。

并非所有设备都支持光栅图像。对于似乎缺乏支持的设备,useRaster=TRUE 将被忽略并显示警告。

细节

这些和所有其他高级网格函数有几个共同的参数。这些仅在 xyplot 的帮助页面中进行了大量记录,应查阅该页面以了解更详细的用法。

默认面板函数 panel.levelplot 的帮助页面中提到了其他有用的参数(这些是面板函数的正式参数,但可以直接在高级调用中指定)。

"trellis" 的对象。 update 方法可用于更新对象的组件,print 方法(通常默认调用)会将其绘制在适当的绘图设备上。

例子

x <- seq(pi/4, 5 * pi, length.out = 100)
y <- seq(pi/4, 5 * pi, length.out = 100)
r <- as.vector(sqrt(outer(x^2, y^2, "+")))
grid <- expand.grid(x=x, y=y)
grid$z <- cos(r^2) * exp(-r/(pi^3))
levelplot(z ~ x * y, grid, cuts = 50, scales=list(log="e"), xlab="",
          ylab="", main="Weird Function", sub="with log scales",
          colorkey = FALSE, region = TRUE)
## triangular end-points in color key, with a title
levelplot(z ~ x * y, grid, col.regions = hcl.colors(10),
          at = c(-Inf, seq(-0.8, 0.8, by = 0.2), Inf))

#S-PLUS example
require(stats)
attach(environmental)
ozo.m <- loess((ozone^(1/3)) ~ wind * temperature * radiation,
       parametric = c("radiation", "wind"), span = 1, degree = 2)
w.marginal <- seq(min(wind), max(wind), length.out = 50)
t.marginal <- seq(min(temperature), max(temperature), length.out = 50)
r.marginal <- seq(min(radiation), max(radiation), length.out = 4)
wtr.marginal <- list(wind = w.marginal, temperature = t.marginal,
        radiation = r.marginal)
grid <- expand.grid(wtr.marginal)
grid[, "fit"] <- c(predict(ozo.m, grid))
contourplot(fit ~ wind * temperature | radiation, data = grid,
            cuts = 10, region = TRUE,
            xlab = "Wind Speed (mph)",
            ylab = "Temperature (F)",
            main = "Cube Root Ozone (cube root ppb)")
detach()

作者

Deepayan Sarkar Deepayan.Sarkar@R-project.org

参考

Sarkar, Deepayan (2008) Lattice: Multivariate Data Visualization with R, Springer. http://lmdvr.r-forge.r-project.org/

也可以看看

xyplot , Lattice , panel.levelplot

相关用法


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