你的可视化配色终极解决方案
Hi,大家好,我是晨曦
今天这期推文也是来自小伙伴们的私信提问
A同学:晨曦,我们进行ggplot2可视化的时候,配色真的很难选,ggsci有分组水平的限制,然后colorspace虽然很方便的可以获得颜色的编码,但是我自己对于审美确实没有审美自信,有没有那种可以很方便的告诉我,我究竟需要选择什么样的颜色的工具?
晨曦:.......
那么,这期推文我们就来聊一聊R语言可视化配色的相关话题
引言
我们平时使用的R语言配色工具如下:
1. R包:paletteer包(内置了几乎所有配色R包,配色组合数量2000+;缺点则是需要自己选择)
2. R包:ggSCI包(内置了各大期刊的主流配色;缺点则是有level水平的限制)
3. R包:RColorBrewer包(内置了众多配色;缺点则是需要自己选择)
4. R包:grDevices包(与RColorBrewer包类似)
5. R包:RImagePaletten包(提取文章配色用于自己的可视化;缺点则是有的时候提取不全或者不知道该如何搭配)
6. 网站:ColorSpace网站(选择配色提供颜色代码的网站;缺点则是需要自己选择)
7. 网站:Colordrop网站(选择配色提供颜色代码的网站;缺点则是需要自己选择)
综上所述,很多小伙伴想要得到那种直观的,尽量让我少做选择并且方便的工具,那么晨曦接下来介绍的这块配色工具应该可以满足各位小伙伴的部分需求——cols4all包
代码实战
我们可以很清楚的看到这款R包集合了市面上常见的配色R包,但是,如果仅仅只是单纯的集成显然并没有太多的心意,那么我们就探索一下这个R包更具Fashion的地方吧~
工欲善其事必先利其器
我们可以很清楚的看到,运行完上面的一句函数就可以调出一个shiny界面,然后我们可以很方便的在线浏览所需要的配色,其中
左上角Palette Type处可选择色板的类型,包括:
Categorical(分类/离散型色板)
Sequential(渐变/顺序型色板)
Diverging(渐变/发散型色板)
Bivariate(多变量型色板)
这四大类可以供我们进行选择
右边的框则是一些颜色的细节,包括:
Series:该配色来自哪个配色包
Name:该配色的名称
Colorblind-friendly:是否对色盲友好
Intense colors:是否为强烈的色彩组合
Harmonic palette:是否为和谐的色彩组合
Ranking:根据上述三点进行评分并排序(针对当前类型色板和颜色数)
那么下面我们就通过这个配色工具来进行一次可视化的整体操作
这是最基本的绘图,然后我们发现这时候的配色其实就是ggplot2基于映射思想所选择的经典配色,那么现在我们通过我们的配色工具来修改一下配色
然后这个时候我们的颜色其实就已经作用上去了,但是我们现在需要解决另一个问题,就是我们的图例不见了~
ggplot2基于映射的时候是可以自动生成图例的,当然我们也可以通过代码或者AI生成图例,但是这里我们想要基于ggplot2自动生成图例,因为这样比较方便,那么这个时候我们就需要把这个配色工具嵌入到ggplot2体系中,好在作者已经想到了这一点,所以我们可以尝试使用下面的代码
这样子我们就成功把图例放了上去,逻辑就是我需要提供给函数一个映射分组的关系,然后通过配色函数覆盖原有的配色关系即可~
这个时候可能会有小伙伴问,这句scale_color_discrete_c4a_div函数可不可以解析一下:
当然,我们如果通过ggoubr可能会更加简单,如下:
好啦,本期推文到这里就结束啦~
欢迎各位小伙伴有感兴趣的内容在评论区留言,晨曦看到以后会挑选在自己学习范围内的进行学习并整理成教程来和大家互相学习的~
我是晨曦,我们下期再见
参考教程:
1.https://mp.weixin.qq.com/s/_sRN_-8PenGm3ZuAbYatwQ
2.mtennekes/cols4all: Colors for all (R package) (github.com)