图片美不美,关键看色彩。毫无疑问,图表的色彩搭配直接决定图表给读者的感受和印象,漂亮的图表自然会给文章增色不少。因此,学会自定义图表的配色非常重要。
那么,怎么给图表选择一组漂亮的颜色呢?本文以R语言(ggplot2)作图为例,介绍3种色彩搭配(获取一组配色颜色值)的方法。
1
从R包中提取配色集
配色的本质就是得到一组搭配十分“和谐”的颜色。R中的常见颜色的表示方式有16进制颜色码,英文代码,RGB颜色值三种方式。常见的R色彩搭配包如RColorBrewer、ggsci、ggtech等提供现成的色彩搭配方案,可以直接拿来用。下面以RColorBrewer为例:
> # 首先,简单画个柱状图(p1)
>test1<-c(12,4,21,45,56,91)
>test2<-c(1,2,3,4,5,6)
>test3<-c("a","b","c","d","e","f")
>tdata<-data.frame(t1=test1,t2=test2,t3=test3)
>tdata
t1 t2 t3
112 1 a
2 4 2 b
321 3 c
445 4 d
556 5 e
691 6 f
>library(ggplot2)
>p1<-ggplot(tdata,aes(x=factor(t2),y=t1,fill=t3))+geom_bar(stat ="identity",position = "dodge")
> p1
# 随便自定义个颜色值组成的向量
>y1<-"#3da472"
>y2<-"#8ec965"
>y3<-"pink"
>y4<-"gold"
>y5<-"red"
>y6<-"blue"
>mycolors<-c(y1,y2,y3,y4,y5,y6)
>mycolors
[1]"#3da472" "#8ec965" "pink" "gold" "red" "blue"
#我们看下自定义配色的样子(p2),嗯,很丑
>p2<-p1+scale_fill_manual(values =mycolors )
> p2
# 接下来看下RColorBrewer包中有哪些配色“向量”
>library(RColorBrewer)
>display.brewer.all(type = "seq")
>display.brewer.all(type = "qual")
# 这里仅输出了两种类型的配色,如下图
# 我们选其中的一个看一下
>colors1<-brewer.pal(9,"RdPu")
>colors1
[1]"#FFF7F3" "#FDE0DD" "#FCC5C0" "#FA9FB5""#F768A1" "#DD3497" "#AE017E" "#7A0177""#49006A"
# 选取特定的6种颜色的方法,直接在brewer.pal()后取易出错
>colors2<-colors1[2:7]
>colors2
[1]"#FDE0DD" "#FCC5C0" "#FA9FB5" "#F768A1""#DD3497" "#AE017E"
可以看出,这些R包本质上就是包括多个色彩向量的集合。这里提供给大家一种获取R包中配色方案颜色值的一种方法,这些颜色值可以用在其他软件比如Excel、Origin等图表颜色的自定义。
# 看下“RdPu”的效果(下图p3, 其中p4为“Rdes”的效果)
>p3<-p1+scale_fill_manual(values =colors2 )
> p3
2
学会使用“吸管”工具
另一种方法是学会使用图像处理软件的“吸管”工具(拾色器)。可以直接将那些高分文章中比较漂亮的图表的配色“吸取”出来为己所用。
吸管工具几乎在所有主流的图像处理工具中都会有,如PhotoShop,Illustrator, PPT,甚至Windows系统自带的 “画图” 工具都有。点一下吸取颜色,查看色板中的颜色信息,逐一记录下来即可,详细过程这里不作赘述。
3
色彩提取法
方法是从色彩比较吩咐的风景照片或者绘画大师(如印象派的莫奈,梵高)的作品中用“吸管”工具随机提取几种颜色即可组成一个漂亮的配色方案。如下图,从莫奈的画中提取颜色。