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


R print.trellis 繪製和總結網格對象


R語言 print.trellis 位於 lattice 包(package)。

說明

printplot 方法從 "trellis" 對象生成圖形。 print 方法對於自動繪圖是必需的。 plot 方法本質上是一個別名,為了方便而提供。 summary 方法給出對象的文本摘要。 dimdimnames 說明了由調節引起的cross-tabulation。 panel.error 是執行麵板函數時發生錯誤時使用的默認處理程序。

用法

## S3 method for class 'trellis'
plot(x, position, split,
     more = FALSE, newpage = TRUE,
     packet.panel = packet.panel.default, 
     draw.in = NULL,
     panel.height = lattice.getOption("layout.heights")$panel,
     panel.width = lattice.getOption("layout.widths")$panel,
     save.object = lattice.getOption("save.object"),
     panel.error = lattice.getOption("panel.error"),
     prefix,
     ...)
## S3 method for class 'trellis'
print(x, ...)

## S3 method for class 'trellis'
summary(object, ...)

## S3 method for class 'trellis'
dim(x)
## S3 method for class 'trellis'
dimnames(x)

panel.error(e)

參數

x , object

"trellis" 的對象

position

由 4 個數字組成的向量,通常為 c(xmin, ymin, xmax, ymax),給出要在其中放置 x 的網格圖的矩形的左下角和右上角。該矩形的坐標係在 x 和 y 方向上均為 [0-1]。

split

一個由 4 個整數組成的向量 c(x,y,nx,ny) ,表示將當前圖定位在 nx x ny 圖的常規數組中的 x,y 位置。 (注:原點位於左上角)

more

指定此頁麵上是否會出現更多繪圖的邏輯。

newpage

指定繪圖是否應位於新頁麵上的邏輯。此選項特定於晶格,對於在任意網格視口中包含晶格圖非常有用(請參閱詳細信息部分)。

packet.panel

確定哪個數據包(數據子集)繪製在哪個麵板中的函數。麵板總是按照列變化最快的順序繪製,然後是行,然後是頁麵。給定列、行和頁以及其他相關信息,此函數確定應在該麵板中使用的數據包(如果有)。默認情況下,關聯是通過將麵板順序與數據包順序相匹配來確定的,而數據包順序是通過改變第一個條件變量最快,然後是第二個,依此類推來確定的。此關聯規則在默認值中進行編碼,即函數 packet.panel.default ,其幫助頁麵詳細介紹了提供給指定為 packet.panel 參數的函數的參數。

draw.in

要在其中繪製繪圖的可選(網格)視口(用作 downViewport 中的 name 參數)。如果指定,則忽略 newpage 參數。此函數不是well-tested。

panel.width , panel.height

包含 2 個組件的列表,它們應該是 unit() 的有效 xunits 參數(當前無法指定 data 參數,但如果需要,可以考慮添加)。生成的 unit 對象將是點陣圖中每個麵板的寬度/高度。這些參數可用於顯式控製麵板的尺寸,而不是讓它們擴展以最大化可用空間。允許向量寬度,並且可以指定跨行或列的不等長度。

請注意,此選項不應與原始高級調用中的 aspect 參數的非默認值結合使用(不會產生錯誤,但結果行為未定義)。

save.object

邏輯,指定是否保存正在打印的對象。隨後可以檢索如此保存的最後一個對象。這是一個實驗性函數,應該允許在繪圖完成後訪問麵板的數據,從而可以在事後增強繪圖。這還允許用戶在當前繪圖上調用 update 方法,即使它沒有顯式分配給變量。有關更多詳細信息,請參閱trellis.focus

panel.error

執行麵板函數期間發生錯誤時要執行的函數或命名函數的字符串。錯誤被捕獲(使用 tryCatch )並作為唯一參數提供給 panel.error 。默認行為(作為 panel.error 函數實現)是在麵板中打印相應的錯誤消息並繼續。要在出錯時停止執行,請使用 panel.error = stop

當使用 tryCatch 時,普通的錯誤恢複和調試工具沒有幫助。通過將panel.error設置為NULL可以完全繞過tryCatch

prefix

用作標識繪圖的前綴的字符串"trellis"對象,主要用於構建視口和grob名稱,以在頁麵包含多個繪圖時區分相似的視口。默認值基於當前頁麵上當前繪圖的序列號(具體來說,"plot_01","plot_02", ETC。)。如果明確提供,這必須是有效的R符號名稱(簡單來說,它必須以字母或句點後跟字母開頭)並且不得包含網格路徑分隔符(目前"::")。

e

tryCatch 捕獲的錯誤情況

...

額外的參數,被 print 方法忽略。 plot 方法的所有參數都傳遞給 print 方法。

細節

這是 "trellis" 類對象的默認打印方法,通過調用 xyplotbwplot 等函數生成。它通常在生成網格對象時自動調用。還可以通過參數 splitposition 顯式調用它來控製繪圖定位。

newpage = FALSE 時,當前網格視口被視為繪圖區域,從而可以將點陣圖嵌入任意網格視口內。 draw.in 參數提供了一種可能更易於使用的替代機製。

print 方法使用 x(要打印的對象)中的信息通過 Grid 圖形引擎生成顯示。該圖的核心是網格布局,其中用戶最感興趣的條目是包含顯示麵板的條目。

與舊版本的 Lattice(和 Grid)不同,網格顯示樹在生成繪圖後保留,從而可以訪問各個視口位置並向繪圖添加內容。有關更多詳細信息和這些視口的晶格級接口,請參閱trellis.focus

注意

與 S-PLUS 不同,嘗試定位多頁顯示(使用 position 和/或 split )會將事情搞砸。

例子


p11 <- histogram( ~ height | voice.part, data = singer, xlab="Height")
p12 <- densityplot( ~ height | voice.part, data = singer, xlab = "Height")
p2 <- histogram( ~ height, data = singer, xlab = "Height")


## simple positioning by split
print(p11, split=c(1,1,1,2), more=TRUE)
print(p2, split=c(1,2,1,2))

## Combining split and position:
print(p11, position = c(0,0,.75,.75), split=c(1,1,1,2), more=TRUE)
print(p12, position = c(0,0,.75,.75), split=c(1,2,1,2), more=TRUE)
print(p2, position = c(.5,.75,1,1), more=FALSE)

## Using seekViewport

## repeat same plot, with different polynomial fits in each panel
xyplot(Armed.Forces ~ Year, longley, index.cond = list(rep(1, 6)),
       layout = c(3, 2),
       panel = function(x, y, ...)
       {
           panel.xyplot(x, y, ...)
           fm <- lm(y ~ poly(x, panel.number()))
           llines(x, predict(fm))
       })

## Not run: 
grid::seekViewport(trellis.vpname("panel", 1, 1))
cat("Click somewhere inside the first panel:\n")
ltext(grid::grid.locator(), lab = "linear")

## End(Not run)

grid::seekViewport(trellis.vpname("panel", 1, 1))
grid::grid.text("linear")

grid::seekViewport(trellis.vpname("panel", 2, 1))
grid::grid.text("quadratic")

grid::seekViewport(trellis.vpname("panel", 3, 1))
grid::grid.text("cubic")

grid::seekViewport(trellis.vpname("panel", 1, 2))
grid::grid.text("degree 4")

grid::seekViewport(trellis.vpname("panel", 2, 2))
grid::grid.text("degree 5")

grid::seekViewport(trellis.vpname("panel", 3, 2))
grid::grid.text("degree 6")

作者

Deepayan Sarkar Deepayan.Sarkar@R-project.org

也可以看看

Lattice , unit , update.trellis , trellis.focus , packet.panel.default

相關用法


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