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


R ggplot2 scale_manual 创建您自己的离散尺度


这些函数允许您指定自己的一组从数据级别到美学值的映射。

用法

scale_colour_manual(
  ...,
  values,
  aesthetics = "colour",
  breaks = waiver(),
  na.value = "grey50"
)

scale_fill_manual(
  ...,
  values,
  aesthetics = "fill",
  breaks = waiver(),
  na.value = "grey50"
)

scale_size_manual(..., values, breaks = waiver(), na.value = NA)

scale_shape_manual(..., values, breaks = waiver(), na.value = NA)

scale_linetype_manual(..., values, breaks = waiver(), na.value = "blank")

scale_linewidth_manual(..., values, breaks = waiver(), na.value = NA)

scale_alpha_manual(..., values, breaks = waiver(), na.value = NA)

scale_discrete_manual(aesthetics, ..., values, breaks = waiver())

参数

...

参数传递给discrete_scale

palette

调色板函数,当使用单个整数参数(比例中的级别数)调用时,返回它们应采用的值(例如 scales::hue_pal() )。

limits

之一:

  • NULL 使用默认比例值

  • 定义可能的比例值及其顺序的字符向量

  • 接受现有(自动)值并返回新值的函数。还接受 rlang lambda 函数表示法。

drop

是否应该从量表中省略未使用的因子水平?默认值 TRUE 使用数据中出现的级别; FALSE 使用因子中的所有级别。

na.translate

与连续尺度不同,离散尺度可以轻松显示缺失值,并且默认情况下会这样做。如果要从离散尺度中删除缺失值,请指定 na.translate = FALSE

scale_name

应用于与该比例关联的错误消息的比例名称。

name

秤的名称。用作轴或图例标题。如果 waiver() (默认值),则比例名称取自用于该美学的第一个映射。如果是 NULL ,则图例标题将被省略。

labels

之一:

  • NULL 无标签

  • waiver() 用于由转换对象计算的默认标签

  • 给出标签的字符向量(必须与 breaks 长度相同)

  • 表达向量(必须与中断长度相同)。有关详细信息,请参阅?plotmath。

  • 将中断作为输入并返回标签作为输出的函数。还接受 rlang lambda 函数表示法。

guide

用于创建指南或其名称的函数。有关详细信息,请参阅guides()

super

用于构造比例的超类

values

将数据值映射到的一组美学值。这些值将按顺序(通常按字母顺序)与比例限制匹配,或者与breaks(如果提供)匹配。如果这是一个命名向量,则将根据名称来匹配值。不匹配的数据值将被赋予 na.value

aesthetics

字符串或字符串向量,列出了该比例所使用的美学名称。例如,这可以用于通过 aesthetics = c("colour", "fill") 同时将颜色设置应用于 colourfill 美学。

breaks

之一:

  • NULL 不间断

  • waiver() 用于默认中断(比例限制)

  • 中断的特征向量

  • 将限制作为输入并返回中断作为输出的函数

na.value

用于缺失 (NA) 值的美学值

细节

函数 scale_colour_manual()scale_fill_manual()scale_size_manual() 等适用于比例名称中指定的美观: colourfillsize 等。但是,函数 scale_colour_manual()scale_fill_manual() 还有一个可选的 aesthetics 参数,可用于通过单个函数调用定义 colourfill 美学映射(请参阅示例)。函数 scale_discrete_manual() 是一个通用尺度,可以与通过 aesthetics 参数提供的任何美学或一组美学一起使用。

色盲

许多源自 RGB 组合的调色板(例如 "rainbow" 调色板)并不适合支持所有观看者,尤其是那些有色觉缺陷的观看者。使用 viridis 类型(颜色和 black-and-white 显示在感知上一致)是确保可视化具有良好感知属性的简单选择。色彩空间包提供的函数

  • 生成具有良好感知特性的调色板,

  • 分析给定的调色板,例如模拟色盲,

  • 并修改给定的调色板以获得更好的感知能力。

有关色觉缺陷和合适的颜色选择的更多信息,请参阅paper on the colorspace package 及其参考文献。

例子

p <- ggplot(mtcars, aes(mpg, wt)) +
  geom_point(aes(colour = factor(cyl)))
p + scale_colour_manual(values = c("red", "blue", "green"))


# It's recommended to use a named vector
cols <- c("8" = "red", "4" = "blue", "6" = "darkgreen", "10" = "orange")
p + scale_colour_manual(values = cols)


# You can set color and fill aesthetics at the same time
ggplot(
  mtcars,
  aes(mpg, wt, colour = factor(cyl), fill = factor(cyl))
) +
  geom_point(shape = 21, alpha = 0.5, size = 2) +
  scale_colour_manual(
    values = cols,
    aesthetics = c("colour", "fill")
  )


# As with other scales you can use breaks to control the appearance
# of the legend.
p + scale_colour_manual(values = cols)

p + scale_colour_manual(
  values = cols,
  breaks = c("4", "6", "8"),
  labels = c("four", "six", "eight")
)


# And limits to control the possible values of the scale
p + scale_colour_manual(values = cols, limits = c("4", "8"))

p + scale_colour_manual(values = cols, limits = c("4", "6", "8", "10"))

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Create your own discrete scale。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。