panel.cloud
位于 lattice
包(package)。 说明
默认面板函数控制cloud
和wireframe
显示。
用法
panel.cloud(x, y, subscripts, z,
groups = NULL,
perspective = TRUE,
distance = if (perspective) 0.2 else 0,
xlim, ylim, zlim,
panel.3d.cloud = "panel.3dscatter",
panel.3d.wireframe = "panel.3dwire",
screen = list(z = 40, x = -60),
R.mat = diag(4), aspect = c(1, 1),
par.box = NULL,
xlab, ylab, zlab,
xlab.default, ylab.default, zlab.default,
scales.3d,
proportion = 0.6,
wireframe = FALSE,
scpos,
...,
at,
identifier = "cloud")
panel.wireframe(...)
panel.3dscatter(x, y, z, rot.mat, distance,
groups, type = "p",
xlim, ylim, zlim,
xlim.scaled, ylim.scaled, zlim.scaled,
zero.scaled,
col, col.point, col.line,
lty, lwd, cex, pch, fill,
cross, ..., .scale = FALSE, subscripts,
identifier = "3dscatter")
panel.3dwire(x, y, z, rot.mat = diag(4), distance,
shade = FALSE,
shade.colors.palette = trellis.par.get("shade.colors")$palette,
light.source = c(0, 0, 1000),
xlim, ylim, zlim,
xlim.scaled,
ylim.scaled,
zlim.scaled,
col = if (shade) "transparent" else "black",
lty = 1, lwd = 1,
alpha,
col.groups = superpose.polygon$col,
polynum = 100,
...,
.scale = FALSE,
drape = FALSE,
at,
col.regions = regions$col,
alpha.regions = regions$alpha,
identifier = "3dwire")
makeShadePalette(col.regions, ..., min = 0.05, pref = 0.75)
参数
x , y , z |
表示要显示的数据的数字(或可能的因子)向量。解释取决于上下文。对于 此外,对于 在 |
subscripts |
索引指定要绘制的点。对于每个面板,相同的 |
groups |
分组变量的规范,从高级函数向下传递。 |
perspective |
逻辑,是否绘制透视图。将其设置为 |
distance |
0 到 1 之间的数字,控制透视量。视点距原点的距离(在变换后的坐标系中)为 |
screen |
确定绘制数据之前要应用于数据的旋转顺序的列表。初始位置从沿正 z 轴的观察点开始,x 轴和 y 轴位于通常位置。列表中的每个组件应命名为 |
R.mat |
齐次坐标中的初始旋转矩阵,在 |
par.box |
box的图形参数,即col、lty和lwd。默认从参数 |
xlim , ylim , zlim |
各个轴的限制。与其他点阵函数一样,它们每个都可以是数字 2 向量或指示因子水平的字符向量。 |
panel.3d.cloud , panel.3d.wireframe |
在 任何用户定义的自定义显示都可能想要更改这些函数。目的是向此函数传递尽可能多的有用信息(并非默认使用所有信息)。特别是,这些函数可以期望名为 |
aspect |
方面如 |
xlab , ylab , zlab |
标签,必须是列表。通常,用户不会操纵这些,而是直接通过 |
xlab.default |
供内部使用 |
ylab.default |
供内部使用 |
zlab.default |
供内部使用 |
scales.3d |
定义尺度的列表 |
proportion |
数值标量,给出箭头长度与边的比例 |
scpos |
包含三个分量 x、y 和 z(每个分量都是标量整数)的列表,说明应绘制立方体 12 个边中的哪一个刻度。默认值应该没问题。有效值为 x:1、3、9、11; y: 8, 5, 7, 6 和 z: 4, 2, 10, 12。(请参阅 |
wireframe |
逻辑,指示这是否是线框图 |
drape |
逻辑上,面是否将按高度着色,方式类似于 |
at |
当 |
col.regions |
当 在可用于定义着色调色板(见下文)的 |
alpha.regions |
|
rot.mat |
齐次坐标中的 4x4 变换矩阵。这给出了将 |
type |
字符向量,指定云图的类型。可以包含 |
xlim.scaled , ylim.scaled , zlim.scaled |
轴限制(缩放到边界框后) |
zero.scaled |
原始数据比例中 X-Y 平面的 z 轴位置(缩放到边界框后),当 |
cross |
逻辑,如果 这很有用,原因有两个。可以将其设置为 |
shade |
逻辑,指示是否使用具有单一光源的照明模型对表面进行着色 |
shade.colors.palette |
一个函数(或函数的名称),用于在使用着色时计算面的颜色。该函数可以获得三个信息:第一,入射光线与表面法线之间夹角的余弦(表示透视);第二,反射光线与观察方向之间角度的一半的余弦(对于非朗伯表面有用);第三,该特定面相对于总绘图 z 轴限制的缩放(平均)高度。 所有三个数字都应介于 0 和 1 之间。 |
min |
数字,介于 0 和 1 之间,给出 |
pref |
数字,给出在用于‘darken’颜色之前应用于反射率值的功率。 |
light.source |
表示光源(在笛卡尔坐标中)的 3 向量。这是相对于 (0, 0, 1/距离)(沿正 z 轴)的观察点而言的,请记住所有观测值都在 [-0.5, 0.5] 立方体内 |
polynum |
四边形面一次以 |
col.groups |
不同群体的颜色 |
col , col.point , col.line , lty , lwd , cex , pch , fill , alpha |
图形参数。一些其他参数(例如线宽的 |
... |
其他参数,在适当的时候传递 |
.scale |
逻辑标志,指示 |
identifier |
附加到由此面板函数创建的 grobs 名称之前的字符串。 |
细节
这些函数共同负责 cloud
和 wireframe
中每个面板内绘制的内容。 panel.wireframe
是 panel.cloud
的包装器,它执行实际工作。
panel.cloud
负责绘制不依赖于数据的内容,即边界框、箭头/比例等。在某些时候,根据 wireframe
是否为 TRUE,它会调用 panel.3d.wireframe
或panel.3d.cloud
,绘制绘图的数据驱动部分。
这两个函数接受的参数是不同的,因为它们的目的本质上不同。对于云来说,数据是非结构化的,x
、y
和z
都传递给panel.3d.cloud
函数。另一方面,对于线框,x
和 y
是具有唯一值的递增向量,定义矩形网格。 z
必须是具有 length(x) * length(y)
行、列数与组数相同的矩阵。
panel.3dscatter
是默认的panel.3d.cloud
函数。它有一个类似于 panel.xyplot
的 type
参数,并支持分组显示。它试图遵循深度顺序,即,靠近相机的点和线稍后绘制,覆盖更远的点和线。 (当然,线段没有绝对的排序,因此使用了临时排序。没有隐藏点删除。)
panel.3dwire
是默认的panel.3d.wireframe
函数。它会一一计算与各个面相对应的多边形,但会等到收集到polynum
面的信息后,一次性将它们全部绘制出来。这避免了重复绘制 grid.polygon
的开销,从而大大加快了渲染速度。如果是 shade = TRUE
,则这些尝试将表面着色为从 light.source
光源照射的表面。 palette.shade
是一个提供默认着色颜色的简单函数
如果在调用 wireframe
时 groups
为非空,则会绘制多个曲面,但是该算法不够复杂,无法正确渲染相交曲面。
例子
wireframe(volcano, shade = TRUE,
shade.colors.palette = makeShadePalette(hcl.colors(10, "Inferno"),
pref = 0.2))
wireframe(volcano, shade = TRUE,
shade.colors.palette = makeShadePalette(hcl.colors(10, "Dark Mint"),
pref = 0.2))
wireframe(volcano, shade = TRUE,
shade.colors.palette = makeShadePalette(hcl.colors(10, "Harmonic"),
pref = 0.2))
作者
Deepayan Sarkar Deepayan.Sarkar@R-project.org
也可以看看
相关用法
- R panel.xyplot xyplot 的默认面板函数
- R panel.bwplot bwplot 的默认面板函数
- R panel.loess 添加黄土平滑的面板函数
- R panel.axis 绘图轴刻度和标签的面板函数
- R panel.number 在绘图期间访问辅助信息
- R panel.functions 有用的面板函数组件
- R panel.parallel 并行的默认面板函数
- R panel.pairs splom 的默认超级面板函数
- R panel.dotplot 点图的默认面板函数
- R panel.densityplot 密度图的默认面板函数
- R panel.spline 添加样条平滑的面板函数
- R panel.stripplot 带状图的默认面板函数
- R panel.smoothScatter 格子面板函数类似于 smoothScatter
- R panel.violin 创建小提琴图的面板函数
- R panel.qqmath qqmath 的默认面板函数
- R panel.superpose 分组显示面板函数
- R panel.histogram 直方图的默认面板函数
- R panel.levelplot 水平图和等高线图的面板函数
- R panel.barchart 条形图的默认面板函数
- R panel.qqmathline qqmath 的有用面板函数
- R packet.panel.default 将数据包与面板关联
- R prepanel.functions Lattice 有用的 Prepanel 函数
- R print.trellis 绘制和总结网格对象
- R prepanel.default 默认预面板函数
- R xyplot.ts 时间序列绘图方法
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Default Panel Function for cloud。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。