當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R panel.xyplot xyplot 的默認麵板函數


R語言 panel.xyplot 位於 lattice 包(package)。

說明

這是xyplot 的默認麵板函數。另請參閱panel.superposesplomqq 的默認麵板函數本質上是相同的函數。

用法

panel.xyplot(x, y, type = "p",
             groups = NULL,
             pch, col, col.line, col.symbol,
             font, fontfamily, fontface,
             lty, cex, fill, lwd,
             horizontal = FALSE, ...,
             smooth = NULL,
             grid = lattice.getOption("default.args")$grid,
             abline = NULL,
             jitter.x = FALSE, jitter.y = FALSE,
             factor = 0.5, amount = NULL,
             identifier = "xyplot")
panel.splom(..., identifier = "splom")
panel.qq(..., identifier = "qq")

參數

x , y

要在散點圖中繪製的變量

type

控製如何繪製 xy 的字符向量。可以包含以下一項或多項: "p" , "l" , "h" , "b" , "o" , "s" , "S" , "g" , "r" , "a" , "smooth""spline" 。如果 type 具有多個元素,則會嘗試組合每個組件的效果。

如果type中包含前五個中的任何一個,則其行為與plot中相應的type的效果類似:"p""l"分別代表點和線; "b""o"(對於 ‘overlay’)繪製兩者; "h" 從這些點到原點繪製垂直(或水平,如果 horizontal = TRUE )線段。類型 "s""S""l" 類似,它們連接連續的點,但不是通過直線連接,而是通過垂直和水平線段連接點,形成 ‘step’,其中"s" 的垂直段首先出現,"S" 的水平段首先出現。類型 "s""S" 沿其中一個軸對值進行排序(取決於 horizontal );這與 plot 中的行為不同。對於後一種行為,請將 type = "s"panel = panel.points 結合使用。

類型 "g" 在後台使用 panel.grid 添加參考網格,但使用 grid 參數現在是首選方法。

type 的其餘值會導致各種類型的平滑。這也可以使用smooth參數或直接調用相關麵板函數來實現。麵板函數提供了對圖形和其他參數的更精細的控製,但使用smoothtype更方便簡單的使用。建議使用smooth,但也支持type以實現向後兼容性。

類型 "r" 添加線性回歸線,"smooth" 添加黃土擬合,"spline" 添加三次平滑樣條擬合,"a" 繪製連接每個不同 x 值的平均 y 值的線段。有關詳細信息,請參閱smooth

有關示例,請參見 example(xyplot)demo(lattice)

groups

可選的分組變量。如果存在,將使用panel.superpose來顯示每個子組

col , col.line , col.symbol

默認顏色是使用 trellis.par.getplot.symbolplot.line 獲取的。

font , fontface , fontfamily

pch 為字符時使用的字體

pch , lty , cex , lwd , fill

其他圖形參數。對於 pch 的某些值,fill 服務於 points 中的 bg 的用途

horizontal

控製某些 type 方向的邏輯標誌,例如 "h""s" 、 ans "S" 和平滑結果。

...

panel.xyplot 的額外參數(如果有)。通常作為圖形參數傳遞給低級繪圖函數,或者傳遞給執行平滑的麵板函數(如果適用)。

smooth

如果指定,則指示要添加的平滑類型。可以是包含 "lm""loess""spline""average" 中的一個或多個值的字符向量。也可以是邏輯標誌; TRUE 被解釋為 "loess" 。其中每一個都會導致調用相應的麵板函數,如下所述; smooth 參數隻是提供了一個方便的快捷方式。

"lm" 添加線性回歸線(與 panel.lmline 相同,默認圖形參數除外)。 "loess" 添加黃土擬合(與 panel.loess 相同)。 "spline" 添加三次平滑樣條擬合(與 panel.spline 相同)。 "average" 具有調用 panel.average 的效果,它與 groups 參數結合使用可用於創建交互圖。

通常,使用 y 變量作為響應、x 變量作為預測變量來執行平滑。但是,如果 horizontal = TRUE ,則 xy 的角色互換。

grid

邏輯標誌、字符串或列表,指定是否以及如何繪製背景網格。這提供了與 type="g" 相同的函數,但它是首選替代方案,因為效果 type="g" 在概念上不同於其他 type 值(均為 data-dependent)。使用 grid 參數還可以提供更大的靈活性。

最一般地, grid 可以是要提供給 panel.grid 的參數列表,並使用這些參數來調用 panel.grid 。可以使用三個快捷方式:

TRUE

大致相當於list(h = -1, v = -1)

"h"

大致相當於list(h = -1, v = 0)

"v"

大致相當於list(h = 0, v = -1)

如果 grid = FALSE 則不會繪製網格。

abline

一個數字向量或更一般地包含用於調用 panel.abline 的參數的列表。如果指定為數值向量,則 abline 用作 panel.abline 的第一個未命名參數。這允許 abline = c(0, 1) 形式的參數(添加對角線)或 abline = coef(fm) 來擬合來自擬合模式的回歸線。使用列表形式進行更精細的控製;例如,abline = list(h = 0, v = 0, col = "grey")

為了獲得更大的靈活性,請直接使用panel.abline

jitter.x , jitter.y

邏輯上,在繪製數據之前是否應該抖動數據。

factor , amount

控製抖動量。

identifier

附加到由此麵板函數創建的 grobs 名稱之前的字符串。

細節

創建 xy 的散點圖,並可以通過類型參數進行各種修改。 panel.qq 在調用 panel.xyplot 之前繪製一條 45 度線。

請注意,大多數控製顯示的參數可以直接提供給高級(例如 xyplot )調用。

例子


types.plain <- c("p", "l", "o", "r", "g", "s", "S", "h", "a", "smooth")
types.horiz <- c("s", "S", "h", "a", "smooth")
horiz <- rep(c(FALSE, TRUE), c(length(types.plain), length(types.horiz)))

types <- c(types.plain, types.horiz)

x <- sample(seq(-10, 10, length.out = 15), 30, TRUE)
y <- x + 0.25 * (x + 1)^2 + rnorm(length(x), sd = 5)

xyplot(y ~ x | gl(1, length(types)),
       xlab = "type", 
       ylab = list(c("horizontal=TRUE", "horizontal=FALSE"), y = c(1/6, 4/6)),
       as.table = TRUE, layout = c(5, 3),
       between = list(y = c(0, 1)),
       strip = function(...) {
           panel.fill(trellis.par.get("strip.background")$col[1])
           type <- types[panel.number()]
           grid::grid.text(label = sprintf('"%s"', type), 
                           x = 0.5, y = 0.5)
           grid::grid.rect()
       },
       scales = list(alternating = c(0, 2), tck = c(0, 0.7), draw = FALSE),
       par.settings = 
       list(layout.widths = list(strip.left = c(1, 0, 0, 0, 0))),
       panel = function(...) {
           type <- types[panel.number()]
           horizontal <- horiz[panel.number()]
           panel.xyplot(..., 
                        type = type,
                        horizontal = horizontal)
       })[rep(1, length(types))]

作者

Deepayan Sarkar Deepayan.Sarkar@R-project.org

也可以看看

panel.superpose , xyplot , splom

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Default Panel Function for xyplot。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。