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


R axis.default 默認軸注釋實用程序


R語言 axis.default 位於 lattice 包(package)。

說明

點陣函數提供對如何通過通用接口注釋繪圖軸的控製。有兩個級別的控製。 xscale.componentsyscale.components 參數可以是確定給定數據包的刻度線位置和標簽的函數。為了更直接的控製,axis 參數可以是實際繪製軸的函數。此處記錄的函數是這些參數的默認值。它們還可以用作用戶編寫的替換組件。

用法

xscale.components.default(lim,
                          packet.number = 0,
                          packet.list = NULL,
                          top = TRUE,
                          ...)
yscale.components.default(lim,
                          packet.number = 0,
                          packet.list = NULL,
                          right = TRUE,
                          ...)
axis.default(side = c("top", "bottom", "left", "right"),
             scales, components, as.table,
             labels = c("default", "yes", "no"),
             ticks = c("default", "yes", "no"),
             ..., prefix)

參數

lim

該數據包中的數據範圍(對應於條件變量級別組合的數據子集)。範圍不一定是數字;例如對於因子,它們可以是表示級別的字符向量,對於各種日期時間表示,它們可以是具有相應類別的長度為 2 的向量。

packet.number

正在處理哪個數據包(根據數據包順序計數,如 print.trellis 中所述)。如果所有麵板具有相同的限製,則僅調用此函數一次(而不是每個數據包調用一次),在這種情況下,此參數的值為 0

packet.list

列表中,隻要有數據包的數量,就給出所有實際的數據包。具體來說,每個組件都是當該數據包在麵板中繪製時給予麵板函數的參數列表。 (這尚未實施。)

top , right

結果的 topright 分量的值(視情況而定)。請參閱下麵的解釋。

side

軸應繪製在哪一側。應用通常的部分匹配規則。

scales

提供給高級函數的 scales 參數的適當組件,經過適當標準化。

components

列表,類似於 xscale.components.defaultyscale.components.default 生成的列表。

as.table

高級函數中的as.table 參數。

labels

是否要繪製標簽。默認情況下,使用scales確定的規則。

ticks

是否要繪製標簽。默認情況下,使用scales確定的規則。

...

可以提供許多其他參數,並將其傳遞給其他內部函數。

prefix

標識正在繪製的圖的字符串(請參閱 print.trellis )。用於檢索當前麵板在整體布局中的位置,以便可以正確繪製軸。

細節

這些函數是lattice 0.14中引入的新API的一部分,旨在為用戶提供對如何完成軸注釋的更多控製。雖然 API 的設計考慮到了以前不支持的用途,但實現最初側重於重現現有函數,而不是測試新函數。在撰寫本文時,有幾個函數尚未實現。如果您需要它們,請聯係維護者。

xscale.components.defaultyscale.components.default 返回適合作為 axis.defaultcomponents 參數的形式的列表。 xscale.components.default 返回值中的有效組件是:

num.limit

框的數字限製。

bottom

包含兩個元素 tickslabels 的列表。 ticks 必須是一個包含組件 attck 的列表,它們給出刻度線的位置和長度。 tck 可以是一個向量,並且將被回收到與 at 一樣長。 labels 必須是包含組件 atlabelscheck.overlap 的列表。 atlabels 給出刻度標簽的位置和標簽;這通常與刻度的位置相同,但不要求如此。 check.overlap 是一個邏輯標誌,指示在渲染時是否應通過省略一些標簽來避免標簽重疊。

top

這可以是一個邏輯標誌;如果TRUEtop被視為與bottom相同;如果 FALSE ,則省略頂部軸的軸注釋。或者, top 可以是類似 bottom 的列表。

yscale.components.default 返回值中的有效組件是 leftright 。它們的解釋類似於(分別)上述的 bottomtop 組件。

例子


str(xscale.components.default(c(0, 1)))

set.seed(36872)
rln <- rlnorm(100)

densityplot(rln, 
            scales = list(x = list(log = 2), alternating = 3),
            xlab = "Simulated lognormal variates",
            xscale.components = function(...) {
                ans <- xscale.components.default(...)
                ans$top <- ans$bottom
                ans$bottom$labels$labels <- parse(text = ans$bottom$labels$labels)
                ans$top$labels$labels <-
                    if (require(MASS))
                        fractions(2^(ans$top$labels$at))
                    else
                        2^(ans$top$labels$at)
                ans
            })


## Direct use of axis to show two temperature scales (Celcius and
## Fahrenheit).  This does not work for multi-row plots, and doesn't
## do automatic allocation of space


F2C <- function(f) 5 * (f - 32) / 9 
C2F <- function(c) 32 + 9 * c / 5 

axis.CF <-
    function(side, ...) 
{
    ylim <- current.panel.limits()$ylim
    switch(side,
           left = {
               prettyF <- pretty(ylim)
               labF <- parse(text = sprintf("%s ~ degree * F", prettyF))
               panel.axis(side = side, outside = TRUE,
                          at = prettyF, labels = labF)
           },
           right = {
               prettyC <- pretty(F2C(ylim))
               labC <- parse(text = sprintf("%s ~ degree * C", prettyC))
               panel.axis(side = side, outside = TRUE,
                          at = C2F(prettyC), labels = labC)
           },
           axis.default(side = side, ...))
}

xyplot(nhtemp ~ time(nhtemp), aspect = "xy", type = "o",
       scales = list(y = list(alternating = 3)),
       axis = axis.CF, xlab = "Year", ylab = "Temperature", 
       main = "Yearly temperature in New Haven, CT")

## version using yscale.components

yscale.components.CF <-
    function(...)
{
    ans <- yscale.components.default(...)
    ans$right <- ans$left
    ans$left$labels$labels <-
        parse(text = sprintf("%s ~ degree * F", ans$left$labels$at))
    prettyC <- pretty(F2C(ans$num.limit))
    ans$right$ticks$at <- C2F(prettyC)
    ans$right$labels$at <- C2F(prettyC)
    ans$right$labels$labels <-
        parse(text = sprintf("%s ~ degree * C", prettyC))
    ans
}
      

xyplot(nhtemp ~ time(nhtemp), aspect = "xy", type = "o",
       scales = list(y = list(alternating = 3)),
       yscale.components = yscale.components.CF,
       xlab = "Year", ylab = "Temperature", 
       main = "Yearly temperature in New Haven, CT")


作者

Deepayan Sarkar Deepayan.Sarkar@R-project.org

也可以看看

Latticexyplotprint.trellis

相關用法


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