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_scalescale_name-
应用于与该比例关联的错误消息的比例名称。
palette-
调色板函数,当使用值介于 0 和 1 之间的数值向量调用时,会返回相应的输出值(例如
scales::area_pal())。 name-
秤的名称。用作轴或图例标题。如果
waiver()(默认值),则比例名称取自用于该美学的第一个映射。如果是NULL,则图例标题将被省略。 breaks-
之一:
-
NULL不间断 -
waiver()用于由 transformation object 计算的默认中断 -
位置的数值向量
-
将限制作为输入并返回中断作为输出的函数(例如
scales::extended_breaks()返回的函数)。还接受 rlang lambda 函数表示法。
-
minor_breaks-
之一:
n.breaks-
指导主要中断次数的整数。该算法可能会选择稍微不同的数字以确保良好的中断标签。仅在
breaks = waiver()时有效。使用NULL使用转换给出的默认中断数。 labels-
之一:
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-
之一:
-
处理超出范围限制(越界)的函数。还接受 rlang lambda 函数表示法。
-
默认值 (
scales::censor()) 将超出范围的值替换为NA。 -
scales::squish()用于将超出范围的值压缩到范围内。 -
scales::squish_infinite()用于将无限值压缩到范围内。
-
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-
对于位置刻度,轴的位置。
left或right表示 y 轴,top或bottom表示 x 轴。 super-
用于构造比例的超类
- low, high
-
渐变低端和高端的颜色。
- space
-
用于计算渐变的颜色空间。必须是 "Lab" - 其他值已弃用。
- na.value
-
用于缺失值的颜色
- guide
-
图例类型。使用
"colourbar"表示连续颜色条,或使用"legend"表示离散颜色图例。 - aesthetics
-
字符串或字符串向量,列出了该比例所使用的美学名称。例如,这可以用于通过
aesthetics = c("colour", "fill")同时将颜色设置应用于colour和fill美学。 - 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()`).
相关用法
- R ggplot2 scale_grey 连续灰度色阶
- R ggplot2 scale_shape 形状比例,又称字形
- R ggplot2 scale_viridis 来自 viridisLite 的 Viridis 色标
- R ggplot2 scale_linetype 线条图案的比例
- R ggplot2 scale_discrete 离散数据的位置尺度
- R ggplot2 scale_manual 创建您自己的离散尺度
- R ggplot2 scale_colour_discrete 离散色阶
- R ggplot2 scale_steps 分级渐变色标
- R ggplot2 scale_size 面积或半径比例
- R ggplot2 scale_date 日期/时间数据的位置刻度
- R ggplot2 scale_continuous 连续数据的位置比例(x 和 y)
- R ggplot2 scale_binned 用于对连续数据进行装箱的位置比例(x 和 y)
- R ggplot2 scale_alpha Alpha 透明度比例
- R ggplot2 scale_colour_continuous 连续色标和分级色标
- R ggplot2 scale_identity 使用不缩放的值
- R ggplot2 scale_linewidth 线宽比例
- R ggplot2 scale_hue 离散数据的均匀间隔颜色
- R ggplot2 scale_brewer ColorBrewer 的连续、发散和定性色标
- R ggplot2 stat_ellipse 计算法行数据椭圆
- R ggplot2 stat_identity 保留数据原样
- R ggplot2 stat_summary_2d 以二维形式进行分类和汇总(矩形和六边形)
- R ggplot2 should_stop 在示例中用于说明何时应该发生错误。
- R ggplot2 stat_summary 总结唯一/分箱 x 处的 y 值
- R ggplot2 stat_sf_coordinates 从“sf”对象中提取坐标
- R ggplot2 stat_unique 删除重复项
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Gradient colour scales。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
