当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。