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


R ggplot2 scale_gradient 漸變色階


scale_*_gradient 創建兩個顏色漸變 (low-high),scale_*_gradient2 創建發散顏色漸變 (low-mid-high),scale_*_gradientn 創建 n-colour 漸變。有關這些尺度的分箱變體,請參閱color steps 尺度。

用法

scale_colour_gradient(
  ...,
  low = "#132B43",
  high = "#56B1F7",
  space = "Lab",
  na.value = "grey50",
  guide = "colourbar",
  aesthetics = "colour"
)

scale_fill_gradient(
  ...,
  low = "#132B43",
  high = "#56B1F7",
  space = "Lab",
  na.value = "grey50",
  guide = "colourbar",
  aesthetics = "fill"
)

scale_colour_gradient2(
  ...,
  low = muted("red"),
  mid = "white",
  high = muted("blue"),
  midpoint = 0,
  space = "Lab",
  na.value = "grey50",
  guide = "colourbar",
  aesthetics = "colour"
)

scale_fill_gradient2(
  ...,
  low = muted("red"),
  mid = "white",
  high = muted("blue"),
  midpoint = 0,
  space = "Lab",
  na.value = "grey50",
  guide = "colourbar",
  aesthetics = "fill"
)

scale_colour_gradientn(
  ...,
  colours,
  values = NULL,
  space = "Lab",
  na.value = "grey50",
  guide = "colourbar",
  aesthetics = "colour",
  colors
)

scale_fill_gradientn(
  ...,
  colours,
  values = NULL,
  space = "Lab",
  na.value = "grey50",
  guide = "colourbar",
  aesthetics = "fill",
  colors
)

參數

...

參數傳遞給continuous_scale

scale_name

應用於與該比例關聯的錯誤消息的比例名稱。

palette

調色板函數,當使用值介於 0 和 1 之間的數值向量調用時,會返回相應的輸出值(例如 scales::area_pal() )。

name

秤的名稱。用作軸或圖例標題。如果 waiver() (默認值),則比例名稱取自用於該美學的第一個映射。如果是 NULL ,則圖例標題將被省略。

breaks

之一:

minor_breaks

之一:

  • NULL 沒有小中斷

  • waiver() 用於默認中斷(每個主要中斷之間有一個次要中斷)

  • 位置的數值向量

  • 給定限製的函數返回一個由次要中斷組成的向量。還接受 rlang lambda 函數表示法。

n.breaks

指導主要中斷次數的整數。該算法可能會選擇稍微不同的數字以確保良好的中斷標簽。僅在 breaks = waiver() 時有效。使用 NULL 使用轉換給出的默認中斷數。

labels

之一:

  • NULL 無標簽

  • waiver() 用於由轉換對象計算的默認標簽

  • 給出標簽的字符向量(必須與 breaks 長度相同)

  • 表達向量(必須與中斷長度相同)。有關詳細信息,請參閱?plotmath。

  • 將中斷作為輸入並返回標簽作為輸出的函數。還接受 rlang lambda 函數表示法。

limits

之一:

  • NULL 使用默認比例範圍

  • 長度為 2 的數值向量,提供尺度限製。使用NA來引用現有的最小值或最大值

  • 接受現有(自動)限製並返回新限製的函數。還接受 rlang lambda 函數表示法。請注意,對位置比例設置限製將刪除限製之外的數據。如果目的是縮放,請使用坐標係中的 limit 參數(請參閱 coord_cartesian() )。

rescaler

用於將輸入值縮放到範圍 [0, 1] 的函數。這始終是 scales::rescale() ,除了發散和 n 顏色漸變(即 scale_colour_gradient2()scale_colour_gradientn() )。 rescaler 被位置刻度忽略,位置刻度始終使用 scales::rescale() 。還接受 rlang lambda 函數表示法。

oob

之一:

trans

對於連續比例,變換對象的名稱或對象本身。內置轉換包括"asn"、"atanh"、"boxcox"、"date"、"exp"、"hms"、"identity"、"log"、"log10"、"log1p","log2","logit"、"modulus"、"probability"、"probit"、"pseudo_log"、"reciprocal"、"reverse"、"sqrt" 和 "time"。

變換對象將變換、其逆變換以及用於生成中斷和標簽的方法捆綁在一起。轉換對象在 scales 包中定義,稱為 <name>_trans (例如 scales::boxcox_trans() )。您可以使用 scales::trans_new() 創建自己的轉換。

expand

對於位置刻度,範圍擴展常量的向量,用於在數據周圍添加一些填充,以確保它們放置在距軸一定距離的位置。使用便捷函數expansion() 生成expand 參數的值。默認情況下,對於連續變量,每側擴展 5%,對於離散變量,每側擴展 0.6 個單位。

position

對於位置刻度,軸的位置。 leftright 表示 y 軸,topbottom 表示 x 軸。

super

用於構造比例的超類

low, high

漸變低端和高端的顏色。

space

用於計算漸變的顏色空間。必須是 "Lab" - 其他值已棄用。

na.value

用於缺失值的顏色

guide

圖例類型。使用 "colourbar" 表示連續顏色條,或使用 "legend" 表示離散顏色圖例。

aesthetics

字符串或字符串向量,列出了該比例所使用的美學名稱。例如,這可以用於通過 aesthetics = c("colour", "fill") 同時將顏色設置應用於 colourfill 美學。

mid

中點顏色

midpoint

發散尺度的中點(數據值)。默認為 0。

colours, colors

用於 n-colour 漸變的顏色向量。

values

如果顏色不應該沿著漸變均勻定位,則該向量給出 colours 向量中每種顏色的位置(0 到 1 之間)。有關將任意範圍映射到 0 到 1 之間的便捷函數,請參閱 rescale()

細節

默認顏色是用生成的孟塞爾mnsl(c("2.5PB 2/4", "2.5PB 7/10"))。通常,對於連續色標,您希望保持色調恒定,但改變色度和亮度。這孟塞爾使用孟塞爾顏色係統包可以輕鬆實現這一點。

也可以看看

scales::seq_gradient_pal() 了解底層調色板的詳細信息,scale_colour_steps() 了解這些比例的分級變體。

其他色標:scale_alpha()scale_colour_brewer()scale_colour_continuous()scale_colour_grey()scale_colour_hue()scale_colour_steps()scale_colour_viridis_d()

例子

set.seed(1)
df <- data.frame(
  x = runif(100),
  y = runif(100),
  z1 = rnorm(100),
  z2 = abs(rnorm(100))
)

df_na <- data.frame(
  value = seq(1, 20),
  x = runif(20),
  y = runif(20),
  z1 = c(rep(NA, 10), rnorm(10))
)

# Default colour scale colours from light blue to dark blue
ggplot(df, aes(x, y)) +
  geom_point(aes(colour = z2))


# For diverging colour scales use gradient2
ggplot(df, aes(x, y)) +
  geom_point(aes(colour = z1)) +
  scale_colour_gradient2()


# Use your own colour scale with gradientn
ggplot(df, aes(x, y)) +
  geom_point(aes(colour = z1)) +
  scale_colour_gradientn(colours = terrain.colors(10))


# Equivalent fill scales do the same job for the fill aesthetic
ggplot(faithfuld, aes(waiting, eruptions)) +
  geom_raster(aes(fill = density)) +
  scale_fill_gradientn(colours = terrain.colors(10))


# Adjust colour choices with low and high
ggplot(df, aes(x, y)) +
  geom_point(aes(colour = z2)) +
  scale_colour_gradient(low = "white", high = "black")

# Avoid red-green colour contrasts because ~10% of men have difficulty
# seeing them

# Use `na.value = NA` to hide missing values but keep the original axis range
ggplot(df_na, aes(x = value, y)) +
  geom_bar(aes(fill = z1), stat = "identity") +
  scale_fill_gradient(low = "yellow", high = "red", na.value = NA)


 ggplot(df_na, aes(x, y)) +
   geom_point(aes(colour = z1)) +
   scale_colour_gradient(low = "yellow", high = "red", na.value = NA)
#> Warning: Removed 10 rows containing missing values (`geom_point()`).


相關用法


注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Gradient colour scales。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。