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


R levelplot 水平圖和等高線圖


R語言 levelplot 位於 lattice 包(package)。

說明

繪製假彩色水平圖和等高線圖。

用法

levelplot(x, data, ...)
contourplot(x, data, ...)

## S3 method for class 'formula'
levelplot(x,
          data,
          allow.multiple = is.null(groups) || outer,
          outer = TRUE,
          aspect = "fill",
          panel = if (useRaster) lattice.getOption("panel.levelplot.raster")
                  else lattice.getOption("panel.levelplot"),
          prepanel = NULL,
          scales = list(),
          strip = TRUE,
          groups = NULL,
          xlab,
          xlim,
          ylab,
          ylim,
          at,
          cuts = 15,
          pretty = FALSE,
          region = TRUE,
          drop.unused.levels =
              lattice.getOption("drop.unused.levels"),
          ...,
          useRaster = FALSE,
          lattice.options = NULL,
          default.scales = list(),
          default.prepanel =
              lattice.getOption("prepanel.default.levelplot"),
          colorkey = region,
          col.regions,
          alpha.regions,
          subset = TRUE)

## S3 method for class 'formula'
contourplot(x,
            data,
            panel = lattice.getOption("panel.contourplot"),
            default.prepanel =
                lattice.getOption("prepanel.default.contourplot"),
            cuts = 7,
            labels = TRUE,
            contour = TRUE,
            pretty = TRUE,
            region = FALSE,
            ...)

## S3 method for class 'table'
levelplot(x, data = NULL, aspect = "iso", ..., xlim, ylim)

## S3 method for class 'table'
contourplot(x, data = NULL, aspect = "iso", ..., xlim, ylim)

## S3 method for class 'matrix'
levelplot(x, data = NULL, aspect = "iso",
          ..., xlim, ylim,
          row.values = seq_len(nrow(x)),
          column.values = seq_len(ncol(x)))

## S3 method for class 'matrix'
contourplot(x, data = NULL, aspect = "iso",
            ..., xlim, ylim,
            row.values = seq_len(nrow(x)),
            column.values = seq_len(ncol(x)))


## S3 method for class 'array'
levelplot(x, data = NULL, ...)

## S3 method for class 'array'
contourplot(x, data = NULL, ...)


參數

x

對於 formula 方法,采用 z ~ x * y | g1 * g2 * ... 形式的公式,其中 z 是數字響應,xy 是在矩形網格上計算的數值。 g1, g2, ... 是可選條件變量,並且必須是因子或帶狀皰疹(如果存在)。

計算基於以下假設:所有 x 和 y 值均在網格上計算(由其唯一值定義)。如果不成立,該函數不會返回錯誤,但顯示可能沒有意義。然而,x 和 y 值不需要等距。

levelplotwireframe 都有 matrixarraytable 對象的方法,在這種情況下,x 提供上述 z 向量,而其行和列被解釋為分別為xy 向量。這類似於 filled.contourimage 中使用的形式。對於更高維的數組和表,更高的維度被用作條件變量。請注意,暗名可能會重複;這是通過調用 make.unique 來處理的,以使名稱唯一(盡管原始標簽用於 x 軸和 y 軸)。

data

對於 formula 方法,一個可選 DataFrame ,其中將評估公式中的變量(以及 groupssubset,如果有的話)。在其他情況下通常會被忽略並發出警告。

row.values , column.values

x 是矩陣時定義網格的可選值向量。 row.valuescolumn.values 必須分別與nrow(x)ncol(x) 具有相同的長度。默認情況下,行號和列號。

panel

用於創建顯示的麵板函數,如xyplot中所述

aspect

對於matrix 方法,選擇默認的寬高比以使每個單元格成為正方形。通常的默認值是 aspect="fill" ,如 xyplot 中所述。

at

沿 z 範圍給出斷點的數值向量。輪廓(如果有)將在這些高度繪製,並且之間的區域將使用 col.regions 著色。在後一種情況下,at 範圍之外的值根本不會被繪製。這是限製顯示數據範圍的一種方式,類似於 zlim 參數的用途。然而,這也意味著在顯式提供 at 時,必須小心包含 z 範圍之外的值,以確保顯示所有數據。

僅當 region=FALSE 時,at 的長度才能為 1。

col.regions

如果 Regions 為 TRUE,則使用顏色向量。總體思路是,這應該是一個長度適中的顏色向量(比區域數量長。默認情況下為 100)。預計該矢量的顏色將逐漸變化(以便附近的顏色相似)。當實際選擇顏色時,它們被選擇為沿著該向量等距分布。當 col.regions 中的區域多於顏色時,顏色將被回收。實際的顏色分配是由 level.colors 執行的,它是單獨記錄的。

alpha.regions

數字,指定 alpha 透明度(僅適用於某些設備)

colorkey

指定是否在繪圖旁邊繪製顏色鍵的邏輯標誌,或說明顏色鍵的列表。該列表可能包含以下組件:

space

colorkey 的位置,可以是 "left""right""top""bottom" 之一。默認為 "right"

xy

位置,目前未使用

col

色帶規範,如 level.colors 中的 col.regions 參數

at

指定顏色變化位置的數值向量。長度必須比 col 向量大 1。

tri.lowertri.upper

邏輯或數字控製第一個和最後一個間隔是否應該是三角形而不是矩形。使用默認值 ( NA ),僅當相應的極端 at 值分別為 -InfInf 並且三角形占據色鍵總長度的 5% 時,才會發生這種情況。如果是數字且介於 0 和 0.25 之間,則給出相應的分數,當指定為 TRUE 時,該分數又為 5%。

labels

用於標記 at 值的字符向量,或更常見的是說明標簽特征的列表。該列表可以包括組件 labelsatcexcolrotfontfontfacefontfamily

title

通常是為顏色鍵提供標題的字符向量或表達式,或者更詳細地控製標題的列表,或者任意 "grob" 。有關如何解釋列表形式的詳細信息,請參閱 xyplot 中的 main 條目;一般來說,實際標簽應指定為 label 組件(如果它是第一個組件,則可能未命名),其餘參數在調用 textGrob 時酌情使用。

通過組件 title.control 可以進一步控製標題的位置。特別是,如果未指定 rot 組件,則其默認值取決於 title.control$side 的值(0 表示頂部或底部,90 表示左側或右側)。

title 默認為 NULL ,這意味著不繪製標題。

title.control

提供對標題位置的控製的列表(如果指定)。目前支持兩個組件: side 可以采用值 "top""bottom""left""right" ,並指定要放置標題的顏色鍵的一側。默認為 "space" 組件的值。 padding 是標題和顏色鍵之間默認填充量的乘數。

tick.number

所需的大致刻度數。

tck

刻度長度的(標量)乘數。

corner

與x、y相互作用;目前尚未實施

width

鍵的寬度

height

鍵的長度作為繪圖相應邊的分數。

raster

一個邏輯標誌,指示是否應使用 grid.raster 將顏色鍵渲染為光柵圖像。另請參閱panel.levelplot.raster

interpolate

邏輯標誌,當 raster=TRUE 時傳遞給 rasterGrob

axis.line

給出色鍵邊界和刻度線圖形參數的列表。默認為 trellis.par.get("axis.line")

axis.text

提供顏色鍵上刻度線標簽圖形參數的列表。默認為 trellis.par.get("axis.text")

contour

邏輯標誌,指示是否繪製等高線。

cuts

z 範圍將分為的級別數。

labels

通常是指示是否應標記等高線的邏輯,但存在更複雜控製的其他可能性。詳細信息記錄在 panel.levelplot 的幫助頁麵中,該參數不變地傳遞給該頁麵。該幫助頁麵還記錄了 label.style 參數,該參數會影響標簽的呈現方式。

pretty

一個邏輯標誌,指示是否使用漂亮的剪切位置和標簽。

region

邏輯標誌,指示是否應像水平圖中那樣填充等高線之間的區域。

allow.multiple , outer , prepanel , scales , strip , groups , xlab , xlim , ylab , ylim , drop.unused.levels , lattice.options , default.scales , subset

這些參數在 xyplot 的幫助頁麵中進行了說明。

default.prepanel

後備預麵板函數。請參閱xyplot

...

可以提供進一步的參數。有些由 levelplotcontourplot 處理,而那些無法識別的則傳遞給麵板函數。

useRaster

一個邏輯標誌,指示是否應該對偽彩色圖像和顏色鍵(如果存在)使用光柵表示。實際上,將其設置為 TRUE 會將默認麵板函數從 panel.levelplot 更改為 panel.levelplot.raster ,並將 colorkey$raster 的默認值設置為 TRUE

請注意, panel.levelplot.raster 僅提供 panel.levelplot 函數的子集,但設置 useRaster=TRUE 不會檢查是否已請求任何其他函數。

並非所有設備都支持光柵圖像。對於似乎缺乏支持的設備,useRaster=TRUE 將被忽略並顯示警告。

細節

這些和所有其他高級網格函數有幾個共同的參數。這些僅在 xyplot 的幫助頁麵中進行了大量記錄,應查閱該頁麵以了解更詳細的用法。

默認麵板函數 panel.levelplot 的幫助頁麵中提到了其他有用的參數(這些是麵板函數的正式參數,但可以直接在高級調用中指定)。

"trellis" 的對象。 update 方法可用於更新對象的組件,print 方法(通常默認調用)會將其繪製在適當的繪圖設備上。

例子

x <- seq(pi/4, 5 * pi, length.out = 100)
y <- seq(pi/4, 5 * pi, length.out = 100)
r <- as.vector(sqrt(outer(x^2, y^2, "+")))
grid <- expand.grid(x=x, y=y)
grid$z <- cos(r^2) * exp(-r/(pi^3))
levelplot(z ~ x * y, grid, cuts = 50, scales=list(log="e"), xlab="",
          ylab="", main="Weird Function", sub="with log scales",
          colorkey = FALSE, region = TRUE)
## triangular end-points in color key, with a title
levelplot(z ~ x * y, grid, col.regions = hcl.colors(10),
          at = c(-Inf, seq(-0.8, 0.8, by = 0.2), Inf))

#S-PLUS example
require(stats)
attach(environmental)
ozo.m <- loess((ozone^(1/3)) ~ wind * temperature * radiation,
       parametric = c("radiation", "wind"), span = 1, degree = 2)
w.marginal <- seq(min(wind), max(wind), length.out = 50)
t.marginal <- seq(min(temperature), max(temperature), length.out = 50)
r.marginal <- seq(min(radiation), max(radiation), length.out = 4)
wtr.marginal <- list(wind = w.marginal, temperature = t.marginal,
        radiation = r.marginal)
grid <- expand.grid(wtr.marginal)
grid[, "fit"] <- c(predict(ozo.m, grid))
contourplot(fit ~ wind * temperature | radiation, data = grid,
            cuts = 10, region = TRUE,
            xlab = "Wind Speed (mph)",
            ylab = "Temperature (F)",
            main = "Cube Root Ozone (cube root ppb)")
detach()

作者

Deepayan Sarkar Deepayan.Sarkar@R-project.org

參考

Sarkar, Deepayan (2008) Lattice: Multivariate Data Visualization with R, Springer. http://lmdvr.r-forge.r-project.org/

也可以看看

xyplot , Lattice , panel.levelplot

相關用法


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