cloud
位于 lattice
包(package)。 说明
用于绘制 3D 散点图和曲面的通用函数。 "formula"
方法完成大部分实际工作。
用法
cloud(x, data, ...)
wireframe(x, data, ...)
## S3 method for class 'formula'
cloud(x,
data,
allow.multiple = is.null(groups) || outer,
outer = FALSE,
auto.key = lattice.getOption("default.args")$auto.key,
aspect = c(1,1),
panel.aspect = 1,
panel = lattice.getOption("panel.cloud"),
prepanel = NULL,
scales = list(),
strip = TRUE,
groups = NULL,
xlab,
ylab,
zlab,
xlim = if (is.factor(x)) levels(x) else range(x, finite = TRUE),
ylim = if (is.factor(y)) levels(y) else range(y, finite = TRUE),
zlim = if (is.factor(z)) levels(z) else range(z, finite = TRUE),
at,
drape = FALSE,
pretty = FALSE,
drop.unused.levels,
...,
lattice.options = NULL,
default.scales =
list(distance = c(1, 1, 1),
arrows = TRUE,
axs = axs.default),
default.prepanel = lattice.getOption("prepanel.default.cloud"),
colorkey,
col.regions,
alpha.regions,
cuts = 70,
subset = TRUE,
axs.default = "r")
## S3 method for class 'formula'
wireframe(x,
data,
panel = lattice.getOption("panel.wireframe"),
default.prepanel = lattice.getOption("prepanel.default.wireframe"),
...)
## S3 method for class 'matrix'
cloud(x, data = NULL, type = "h",
zlab = deparse(substitute(x)), aspect, ...,
xlim, ylim, row.values, column.values)
## S3 method for class 'table'
cloud(x, data = NULL, groups = FALSE,
zlab = deparse(substitute(x)),
type = "h", ...)
## S3 method for class 'matrix'
wireframe(x, data = NULL,
zlab = deparse(substitute(x)), aspect, ...,
xlim, ylim, row.values, column.values)
参数
x |
对其执行方法分派的对象。 对于 对于 允许缺失值,无论是
|
data |
对于 |
row.values , column.values |
当 |
allow.multiple , outer , auto.key , prepanel , strip , groups , xlab , xlim , ylab , ylim , drop.unused.levels , lattice.options , default.scales , subset |
这些参数记录在 |
type |
|
aspect , panel.aspect |
与其他高级函数不同, 对于 |
panel |
用于创建显示的面板函数。有关(重要的)详细信息,请参阅 |
default.prepanel |
后备预面板函数。请参阅 |
scales |
说明尺度的列表。与其他高级函数一样(有关详细信息,请参阅 此参数最常见的用途是设置 在 但请注意,对于这些函数 |
axs.default |
与 2-D 显示函数不同, |
zlab |
指定说明 z 变量的标签,其方式类似于其他高级函数中的 |
zlim |
z 轴的限制。与其他高级函数中的 |
drape |
逻辑上,线框是否要覆盖颜色。如果是 |
at , col.regions , alpha.regions |
这些参数与 |
cuts |
如果 |
pretty |
是否应该美化自动选择的切点 |
colorkey |
指示是否应在旁边绘制颜色键的逻辑,或说明此类键的列表。有关详细信息,请参阅 |
... |
可以指定任意数量的其他参数,并将其传递给面板函数。特别是,参数 另外,可以指定一个名为 |
细节
这些函数在每个面板中生成三维图(只要使用默认面板函数)。方向的获取方式如下:将数据缩放到包含在 [-0.5, 0.5] 立方体中的边界框内(对于 aspect
的非默认值甚至更小)。观察方向由 screen
参数指定的一系列旋转给出,从正 Z 轴开始。观察点(摄像机)位于距原点 1/distance
的位置。如果 perspective=FALSE
、distance
设置为 0(即视点位于无限远距离)。
cloud
绘制 3-D 散点图,而 wireframe
绘制 3-D 表面(通常在网格上评估)。 wireframe
可以使用 groups
参数绘制多个曲面(尽管这用途有限,因为当曲面相交时显示不正确)。将 groups
与 cloud
一起指定会产生类似 panel.superpose
的效果(通过 panel.3dscatter
)。
wireframe
可以选择将表面渲染为被光源照亮(但没有阴影)。详细信息可以在 panel.3dwire
的帮助页面中找到。请注意,虽然控制这些的参数实际上是面板函数的参数,但它们可以直接提供给cloud
和wireframe
。
对于单面板图,wireframe
还可以绘制参数化 3-D 曲面(即 f(u,v) = (x(u,v), y(u,v), z(u,v) 形式的函数)),其中 (u,v) 的值位于矩形上。此类表面的最简单示例是由纬度和经度参数化的球体。这可以通过调用 wireframe
来实现,其中公式 x
为形式 z~x*y
,其中 x
、 y
和 z
都是相同维度的矩阵,表示 x(u,v)、y(u,v) 和 z(u,v) 的值在离散矩形网格上评估((u,v) 的实际值不相关)。
使用此函数后,用于计算drape
颜色或阴影颜色的高度不再是z
值,而是(x,y,z)
距原点的距离。
请注意,此函数不适用于 groups
、 subscripts
、 subset
等。在这种情况下也不支持条件变量。
用于识别边界框的哪些边是‘behind’点的算法在某些极端情况下不起作用。此外,panel.cloud
尝试自动找出箭头和轴标签的最佳位置,但有时可能会失败(特别是当视图来自‘below’ 数据时)。这可以通过 panel.cloud
中的 scpos
参数手动控制。
这些和所有其他高级网格函数有几个其他的共同参数。这些仅在 xyplot
的帮助页面中进行了大量记录,应查阅该页面以了解更详细的用法。
值
类 "trellis"
的对象。 update
方法可用于更新对象的组件,print
方法(通常默认调用)会将其绘制在适当的绘图设备上。
注意
当数据中表示的 (x, y) 坐标不代表完整的评估网格时,分组 wireframe
显示存在一个已知问题。无论是通过 groups
参数还是通过公式接口指定分组,都会出现此问题,并且当前会导致内存访问冲突。根据具体情况,这或者表现为毫无意义的情节,或者表现为崩溃。要解决此问题,每个网格点在 DataFrame 中都有一行,并在之前丢失的行中添加 NA
响应 ( z
) 就足够了。
例子
## volcano ## 87 x 61 matrix
wireframe(volcano, shade = TRUE,
aspect = c(61/87, 0.4),
light.source = c(10,0,10))
g <- expand.grid(x = 1:10, y = 5:15, gr = 1:2)
g$z <- log((g$x^g$gr + g$y^2) * g$gr)
wireframe(z ~ x * y, data = g, groups = gr,
scales = list(arrows = FALSE),
drape = TRUE, colorkey = TRUE,
screen = list(z = 30, x = -60))
cloud(Sepal.Length ~ Petal.Length * Petal.Width | Species, data = iris,
screen = list(x = -90, y = 70), distance = .4, zoom = .6)
## cloud.table
cloud(prop.table(Titanic, margin = 1:3),
type = c("p", "h"), strip = strip.custom(strip.names = TRUE),
scales = list(arrows = FALSE, distance = 2), panel.aspect = 0.7,
zlab = "Proportion")[, 1]
## transparent axes
par.set <-
list(axis.line = list(col = "transparent"),
clip = list(panel = "off"))
print(cloud(Sepal.Length ~ Petal.Length * Petal.Width,
data = iris, cex = .8,
groups = Species,
main = "Stereo",
screen = list(z = 20, x = -70, y = 3),
par.settings = par.set,
scales = list(col = "black")),
split = c(1,1,2,1), more = TRUE)
print(cloud(Sepal.Length ~ Petal.Length * Petal.Width,
data = iris, cex = .8,
groups = Species,
main = "Stereo",
screen = list(z = 20, x = -70, y = 0),
par.settings = par.set,
scales = list(col = "black")),
split = c(2,1,2,1))
作者
Deepayan Sarkar Deepayan.Sarkar@R-project.org
参考
Sarkar, Deepayan (2008) Lattice: Multivariate Data Visualization with R, Springer. http://lmdvr.r-forge.r-project.org/
也可以看看
Lattice
包的概述,以及 xyplot
、 levelplot
、 panel.cloud
。
有关交互,请参阅panel.identify.cloud
。
相关用法
- R panel.xyplot xyplot 的默认面板函数
- R xyplot.ts 时间序列绘图方法
- R panel.bwplot bwplot 的默认面板函数
- R panel.loess 添加黄土平滑的面板函数
- R lset 修改网格设置的接口 - 已失效
- R panel.axis 绘图轴刻度和标签的面板函数
- R Rows 从列表中提取行
- R panel.number 在绘图期间访问辅助信息
- R trellis.par.get 网格显示的图形参数
- R update.trellis 检索和更新网格对象
- R barley 明尼苏达州大麦试验的产量数据
- R panel.functions 有用的面板函数组件
- R prepanel.functions Lattice 有用的 Prepanel 函数
- R xyplot 常见的二变量网格图
- R simpleTheme 生成简单主题的函数
- R panel.parallel 并行的默认面板函数
- R print.trellis 绘制和总结网格对象
- R panel.cloud 云默认面板函数
- R packet.panel.default 将数据包与面板关联
- R levelplot 水平图和等高线图
- R trellis.device 初始化网格显示
- R tmd Tukey 均差图
- R panel.pairs splom 的默认超级面板函数
- R draw.colorkey 通常为水平图生成色键
- R prepanel.default 默认预面板函数
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 3d Scatter Plot and Wireframe Surface Plot。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。