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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。