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