ggplot2 配色

ggplot2 配色,第1张

ggplot2的提供了海量的默认配色方案和DIY配色选项,根据色彩显示类型一般分为连续型(渐变色)和离散型(差异色)两种。

根据颜色梯度色彩数量划分,共有三类连续型颜色梯度(即渐变色):

刻度提供的颜色图在颜色和黑白方面在感觉上是一致的,因此色盲也可以感知到所映射的数据的变化。

scale_colour_viridis_d():discrete

scale_colour_viridis_c():continue

下面4个配色参数的方案来源于colorbrewer.org,主要用于离散变量的分组,但有时在连续变量中也有不俗的表现。scale_colour_brewer(),scale_fill_brewer(),scale_colour_distiller(),scale_fill_distiller()

colorbrewer.org的默认配色方案用RColorBrewer::display.brewer.all()查看

scale_colour_brewer(palette = "BrBG") 表示用BrBG默认配色。

关于配色,ggplot2提供了 scale_colour_manual(), scale_fill_manual()函数用于Diy配色。

用 aesthetics指定改变的颜色是哪一个映射,shape = 21是空心圆,可以用fill参数。 此时,在 scale_colour_manual() 中指定应用的映射为fill,则只有fill色彩发生了变化,并生成了一个新的legend。

离散颜色和填充出现在许多情况下。一个典型的例子是一个条形图,它将位置和填充都编码为相同的变量。

离散颜色的默认方法是 scale_fill_discrete() 默认值, scale_fill_hue() 也能生成相同的图:

这个默认比例有一些限制(稍后讨论),将首先讨论用于生成更好的离散调色板的工具。

scale_colour_brewer() 是一个离散的色阶,它和连续的模拟 scale_colour_distiller() 和分箱模拟 scale_colour_fermenter() 一起使用,从 http://colorbrewer2.org/ 中精心挑选的“ColorBrewer”颜色。这些颜色在各种情况下都能很好地工作,尽管重点是在地图上,所以颜色往往在大区域显示时效果更好。有很多不同的选择:

第一组调色板是顺序刻度,当离散刻度是有序(例如,排名数据)时非常有用,并且可用于使用 scale_colour_distiller() 用于连续数据。对于无序分类数据,最感兴趣的调色板是第二组中的调色板。'Set1' 和 'Dark2' 对点特别有用,'Set2'、'Pastel1'、'Pastel2' 和 'Accent' 对区域效果很好。

请注意,没有任何调色板对所有图形都适用。散点图通常使用小的绘图标记,明亮的颜色往往比微妙的效果更好:

条形图通常包含大块颜色,明亮的颜色可能会让人难以抗拒。在这种情况下,微妙的颜色往往效果更好:

默认配色方案在 HCL 色轮周围选择均匀分布的色调。这适用于多达大约八种颜色,但之后就很难区分不同的颜色。您可以使用 h 、 c 和 l 参数控制默认色度和亮度以及色调范围:

默认配色方案的一个缺点是,因为所有颜色都具有相同的亮度和色调,所以当您以黑白方式打印它们时,它们都显示为相同的灰色阴影。请注意,如果您打算以黑白打印离散色阶,最好使用 scale_fill_grey() 将离散数据映射到灰色,从浅到深:

如果挑选的调色板都不适合,或者您有自己喜欢的颜色,您可以使用 scale_fill_manual() 手动设置颜色。如果您希望选择突出二级分组结构的颜色或引起对不同比较的注意,这会很有用:

您还可以使用命名向量来指定要分配给每个级别的颜色,这允许您按您喜欢的任何顺序指定级别:

色阶也能进行分箱。默认标度 scale_fill_binned() ,转换为 scale_fill_steps() 。这些标度有一个 n.breaks 参数来控制由比例创建的离散颜色类别的数量。与直觉相反,因为人类的视觉系统非常擅长检测边缘,这有时会使连续的颜色梯度更容易被感知:

在其他方面 scale_fill_steps() 类似于 scale_fill_gradient() ,并允许您构建自己的双色渐变。还有一种三色变体 scale_fill_steps2() 和 n 色标度变体 scale_fill_stepsn() ,它们的行为与其连续对应物相似:

也存在用于分级的 brewer analog ,称为 scale_fill_fermenter() :

注意,如离散函数 scale_fill_brewer() 、连续函数 scale_fill_distiller() 与分箱函数 scale_fill_fermenter() 不会在brewer颜色之间进行插值,如果您设置 n.breaks 的颜色大于调色板中的颜色数量,则会出现警告消息,并且不会显示某些颜色。

Alpha标度将阴影的透明度映射到数据中的一个值。它们通常不是很有用,但可以是一种方便的方法,可以直观地减轻不太重要的观察。 Scale_alpha() 是 scale_alpha_continuous() 的别名,因为这是alpha最常用的用法,它可以节省一些输入。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11507960.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存