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


R palette 設置或查看圖形調色板


R語言 palette 位於 grDevices 包(package)。

說明

查看或操作col= 具有數字索引和支持函數時使用的調色板。

用法

palette(value)
palette.pals()
palette.colors(n = NULL, palette = "Okabe-Ito", alpha, recycle = FALSE,
               names = FALSE)

參數

value

指定新調色板的可選字符向量(請參閱詳細信息)。

n

從調色板中選擇的顏色數量。默認NULL 選擇給定調色板的所有顏色。

palette

有效的調色板名稱(palette.pals() 之一)。該名稱與可用調色板列表相匹配,忽略匹配中的大小寫、空格、破折號等。

alpha

alpha-transparency 級別在 [0,1] 範圍內(0 表示透明,1 表示不透明)。

recycle

邏輯指示 n > length(palette(.)) 情況下發生的情況。默認情況下 ( recycle = FALSE ),結果與 n = NULL 相同,但帶有警告。

names

邏輯指示是否應返回命名的顏色向量(前提是調色板具有其顏色的任何名稱)。

細節

palette() 函數獲取或設置當前調色板,palette.pals() 函數列出可用的預定義調色板,palette.colors() 函數從預定義調色板中選擇顏色。

調色板和按數字引用顏色(參見例如par)是為了與 S 兼容而提供的。R擴展和改進了可用的調色板集。

如果value的長度為1,則它被視為內置調色板的名稱。可用的調色板名稱由 palette.pals() 返回。也可以指定 "default"

如果 value 的長度大於 1,則假定包含構成新調色板的顏色的說明。調色板的最大大小為 1024 個條目。

如果省略 value,則不會對當前調色板進行任何更改。

一個調色板中的所有設備隻有一個調色板設置R會議。如果更改調色板,則新調色板將應用於所有後續繪圖。

當前調色板也適用於重新繪圖(例如,如果調整屏幕設備大小或使用dev.copyreplayPlot)。調色板會在每頁開始時以及更改時記錄在顯示列表中。

palette() 返回一個字符向量,給出有效調色板中的顏色。除非省略參數,否則這是invisible

palette.pals() 返回一個字符向量,給出預定義調色板的名稱。

palette.colors() 返回 R 顏色向量。默認情況下(如果 names = FALSE 該向量沒有名稱。如果 names = TRUE ,該函數會嘗試返回一個命名向量(如果可能),即對於那些為其顏色提供名稱的調色板(例如, "Okabe-Ito""Tableau 10" ,或"Alphabet" )。

例子

require(graphics)

palette()               # obtain the current palette
palette("R3");palette() # old default palette
palette("ggplot2")      # ggplot2-style palette
palette()

palette(hcl.colors(8, "viridis"))

(palette(gray(seq(0,.9,length.out = 25)))) # gray scales; print old palette
matplot(outer(1:100, 1:30), type = "l", lty = 1,lwd = 2, col = 1:30,
        main = "Gray Scales Palette",
        sub = "palette(gray(seq(0, .9, len=25)))")
palette("default")      # reset back to the default

## on a device where alpha transparency is supported,
##  use 'alpha = 0.3' transparency with the default palette :
mycols <- adjustcolor(palette(), alpha.f = 0.3)
opal <- palette(mycols)
x <- rnorm(1000); xy <- cbind(x, 3*x + rnorm(1000))
plot (xy, lwd = 2,
       main = "Alpha-Transparency Palette\n alpha = 0.3")
xy[,1] <- -xy[,1]
points(xy, col = 8, pch = 16, cex = 1.5)
palette("default")

## List available built-in palettes
palette.pals()

## Demonstrate the colors 1:8 in different palettes using a custom matplot()
sinplot <- function(main=NULL) {
    x <- outer(
	seq(-pi, pi, length.out = 50),
	seq(0, pi, length.out = 8),
	function(x, y) sin(x - y)
    )
    matplot(x, type = "l", lwd = 4, lty = 1, col = 1:8, ylab = "", main=main)
}
sinplot("default palette")

palette("R3");        sinplot("R3")
palette("Okabe-Ito"); sinplot("Okabe-Ito")
palette("Tableau")  ; sinplot("Tableau")
palette("default") # reset

## color swatches for palette.colors()
palette.swatch <- function(palette = palette.pals(), n = 8, nrow = 8,
                           border = "black", cex = 1, ...)
{
     cols <- sapply(palette, palette.colors, n = n, recycle = TRUE)
     ncol <- ncol(cols)
     nswatch <- min(ncol, nrow)
     op <- par(mar = rep(0.1, 4),
               mfrow = c(1, min(5, ceiling(ncol/nrow))),
     	       cex = cex, ...)
     on.exit(par(op))
     while (length(palette)) {
 	subset <- seq_len(min(nrow, ncol(cols)))
 	plot.new()
 	plot.window(c(0, n), c(0.25, nrow + 0.25))
 	y <- rev(subset)
 	text(0, y + 0.1, palette[subset], adj = c(0, 0))
 	y <- rep(y, each = n)
 	rect(rep(0:(n-1), n), y, rep(1:n, n), y - 0.5,
 	     col = cols[, subset], border = border)
 	palette <- palette[-subset]
 	cols    <- cols [, -subset, drop = FALSE]
     }
}

palette.swatch()

palette.swatch(n = 26) # show full "Alphabet"; recycle most others

也可以看看

colors 為內置命名顏色向量; hsv , gray , hcl.colors , ... 構造顏色。

adjustcolor ,例如,用於調整現有調色板; colorRamp 插入顏色,製作自定義調色板; col2rgb 用於將顏色轉換為 RGB 3 向量。

相關用法


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