它山之石可以攻”色”(1):从 ggthemes 提取华尔街日报的图表配色

刘万祥ExcelPro
刘万祥ExcelPro
刘万祥ExcelPro
17
文章
0
评论
2020-04-1803:05:00 评论 1,899 2836字
摘要

《华尔街日报》经典商业图表的配色规范,就在这里。绝密宝图,堪比官方文件。

商业图表非常讲究图表的配色,要有专业感、商务感,不艳不炫、不媚不俗。

它山之石可以攻

如何给图表配色,我从来不想去学习那些色彩理论,什么色相、明度、纯度什么的,那是设计人员的事情,数据分析人员需要了解一点设计知识,但不需要变成设计人员。

在《图表之道》中,我们推荐的方法是借鉴商业媒体图表的成功配色方案。那时候,我的办法是搜索和精选好的商业图表案例,用取色器取出它们的配色,运用到自己的图表中。就是这种简单、略显笨拙的方法,却开启了从 Excel 图表到商业图表的大门,走出一条细分的路来。

它山之石可以攻

近年来,R语言开始流行,我也了解了一下R语言里 ggplot 的作图,知道了 ggthemes 主题包。它将一些期刊、软件的图表风格进行了整理,做成扩展包,方便地格式化出不同风格的图表,可参考去年的帖子,ggplot绘制杂志风格商务图表。我们也可以借鉴这个成果,运用到 Excel 作图里面来,效率会高很多。

ggthemes 有多种风格的主题,其中最有商务气质的当属 wsj 和 economist 主题,也就是华尔街日报和经济学人的风格。这一篇帖子,就是要从 ggthemes 里提取华尔街日报的图表配色方案。

1.安装和加载 ggthemes

安装 ggthemes 包很简单,输入以下命令即可:

> install.packages("ggthemes")

加载 ggplot 和 ggthemes 包:

> library(ggplot2)

> library(ggthemes)

2.wsj 图表的序列用色

我们虚拟一组数据做个简单的柱形图,预览 wsj 颜色组合的显示效果。

df <- data.frame(x=1:6, y=1:6)

p <- ggplot(df, aes(x=x, y=y, fill=factor(x))) + geom_bar(stat="identity")

p + scale_fill_wsj() + theme_wsj() + ggtitle("wsj,ExcelPro")

它山之石可以攻

这是 wsj 主题的默认效果,scale_fill_wsj() 和 theme_wsj() 里面可以进一步指定参数。

scale_fill_wsj() 设置序列的填充颜色,有5种参数,分别是 colors6、rgby、red_green、black_green、dem_rep 五组颜色,显示效果如下。

p+scale_fill_wsj("colors6", "")+theme_wsj()+ggtitle("wsj,ExcelPro")

它山之石可以攻

p+scale_fill_wsj("rgby", "")+theme_wsj()+ggtitle("wsj,ExcelPro")

它山之石可以攻

p+scale_fill_wsj("red_green", "")+theme_wsj()+ggtitle("wsj,ExcelPro")

它山之石可以攻

p+scale_fill_wsj("black_green", "")+theme_wsj()+ggtitle("wsj,ExcelPro")

它山之石可以攻

p+scale_fill_wsj("dem_rep", "")+theme_wsj()+ggtitle("wsj,ExcelPro")

它山之石可以攻

3.wsj 图表的背景用色

theme_wsj() 里面可以设置图表的背景色,有4种参数,分别是 brown、gray、green、blue,显示效果如下。序列颜色和背景颜色可以有不同的搭配组合。

p+scale_fill_wsj("colors6", "")+theme_wsj(color="brown")+ggtitle("wsj,ExcelPro")

它山之石可以攻

p+scale_fill_wsj("colors6", "")+theme_wsj(color="gray")+ggtitle("wsj,ExcelPro")

它山之石可以攻

p+scale_fill_wsj("colors6", "")+theme_wsj(color="green")+ggtitle("wsj,ExcelPro")

它山之石可以攻

p+scale_fill_wsj("colors6", "")+theme_wsj(color="blue")+ggtitle("wsj,ExcelPro")

它山之石可以攻

4.wsj 图表的配色规范

以上是 wsj 主题不同配色组的显示效果。如何知道这些颜色的具体 RGB 值呢,还是用 colorpix 去吸吗?现在不需要了,直接显示参数就可以了。输入命令:

> print(ggthemes_data$wsj$palettes)

就得到了 wsj 主题的各组配色信息,包括颜色名和颜色值。问:这种命令和参数你怎么会知道的?答:因为我琢磨了很久啊。

$rgby

yellow red blue green

"#d3ba68" "#d5695d" "#5d8ca8" "#65a479"

$red_green green red

"#088158" "#ba2f2a"

$black_green black gray ltgreen green

"#000000" "#595959" "#59a77f" "#008856"

$dem_rep

blue red gray

"#006a8e" "#b1283a" "#a8a6a7"

$colors6

red blue gold green orange black

"#c72e29" "#016392" "#be9c2e" "#098154" "#fb832d" "#000000"

输入以下命令可显示 wsj 主题的背景色:

> print(ggthemes_data$wsj$bg)

gray green blue brown

"#efefef" "#e9f3ea" "#d4dee7" "#f8f2e4"

把这些信息复制到 Excel 里,进行如下操作(注意都是 Excel 知识和技巧的运用哦):

* 利用"分列"功能进行规整

* 利用 hex2dec 函数转换为我们熟悉的 RGB 值

* 编个小宏显示出对应的颜色

我就制作出这样一份华尔街日报图表颜色规范表。

它山之石可以攻

这份颜色规范表你可以打印出来备查,做图时参考使用。用上这样的颜色组合,你的图表会马上变得专业起来!和微软的默认效果、网络教程的花哨效果,都完全不一样!

5.制作 Excel 里的 wsj 颜色主题

如果能把上述颜色规范做成 Excel 的颜色主题,则用起来会更方便。这里 colors6 配色组是6个颜色,刚好适合 Excel 里颜色面板的6个格子,再选择一个背景色比如 brown,所以可以在 页面设计 - 颜色主题 - 新建主题,自定义为颜色主题 ExcelPro_wsj_colors6.xml。

它山之石可以攻

在这样的颜色主题下,插入的图表默认就具有 wsj 风格,不再需要一一去设置颜色,是不是提高效率太多了呢!

其他配色组由于颜色个数少,不是很合适做成颜色主题,要用的话可以直接看打印贴纸吧。这时我倒怀念起 2003 版时的 56 色面板来,那时候我可以放置 56 个自定义颜色。

6.例图对比

下面我们提供几个包含较多颜色的华尔街日报图表案例,可以看到这些颜色的运用。你能把这些例图的颜色和上面的颜色组、背景色对应起来吗?

它山之石可以攻

它山之石可以攻

End.作者:刘万祥ExcelPro来源:微博本文均已和作者授权,如转载请与作者联系。

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: