史上最全的图表色彩运用原理
myzbx 2025-01-21 20:00 35 浏览
颜
色
1.1 RGB颜色模型
我们先从颜色模型开始讲解学术图表的色彩运用原理。在图像处理中,最常用的颜色空间是RGB模型,常用于颜色显示和图像处理。RGB 颜色模型使用了颜色成分红(Red)、绿(Green)和蓝(Blue)来定义所给颜色中红色、绿色和蓝色的光的量。在24位图像中,每一颜色成分都由0到255之间的数值表示。在位速率更高的图像中,如48位图像,值的范围更大。这些颜色成分的组合就定义了一种单一的颜色。RGB颜色模型采用三维坐标的模型形式,非常容易被理解,如图1-1(a)所示:原点到白色顶点的中轴线是灰度线,R、G、B三分量相等,强度可以由三分量的向量表示。我们可以用RGB来理解色彩、深浅、明暗变化:
(1) 色彩变化:三个坐标轴RGB最大分量顶点与黄紫青YMC色顶点的连线;
(2) 深浅变化:RGB顶点和CMY顶点到原点和白色顶点的中轴线的距离;
(3) 明暗变化:中轴线的点的位置,到原点,就偏暗,到白色顶点就偏亮。
RGB模型也称为加色法混色模型。它是以RGB三色光互相叠加来实现混色的方法,因而适合于显示器等发光体的显示。其混色规律是:以等量的红、绿、蓝基色光混合时。我们平时在绘图软件中调整颜色主要就是通过修改RGB颜色的三个数值,如图1-2(b) Windows 系统自带的选色器的右下角所示。
图1-1 颜色模型对比
1.2 HSB颜色模型
大家平时在颜色选择中还会遇到一种颜色模型:HSB,在这里也给大家做简要的介绍。HSB 色彩模式是基于人眼的一种颜色模式,是普及型设计软件中常见的色彩模式。,其中
(1) 色相H ( Hue ):在0~360°的标准色环上,按照角度值标识。比如红是0°、橙色是30°等,如
(2) 饱和度S ( saturation ):是指颜色的强度或纯度。饱和度表示色相中彩色成分所占的比例,用从0%(灰色)~100%(完全饱和)的百分比来度量。在色立面上饱和度是从左向右逐渐增加的,左边线为0%,右边线为100%,如:
。
(3) 亮度B ( brightness ):是颜色的明暗程度,通常是从0(黑)~100%(白)的百分比来度量的,在色立面中从上至下逐渐递减,上边线为100%,下边线为0% ,如:
。
HSB有时也作HSV(色相(Hue)、饱和度(Saturation)、色调(Value ))、HSL(色相(Hue)、饱和度(Saturation)、L(lightness))。比起 RGB 系统,HSB 使用了更贴近人类感官直觉的方式来描述色彩,可以指导设计者更好地搭配色彩,会在色彩搭配中经常用到,如图1-2 所示。
(a)Microsoft Office默认的选色器
(b) Windows 系统自带的选色器
图1-2 HSB的应用场景
平时我们颜色参考的色轮(色相轮)就是来源于HSB、HSL颜色模型或Luv颜色模型。Rggplot2包绘图默认的颜色主题方案如图1-3所示,色轮为Luv颜色模型。LUV色彩空间全称CIE1976(L*,u*,v*)(也作CIELUV)色彩空间,L*表示物体亮度,u*和v*是色度。于1976年由国际照明委员会(InternationalCommission on Illumination)提出,由CIE XYZ空间经简单变换得到,具视觉统一性。类似的色彩空间有CIELAB。对于一般的图像,u*和v*的取值范围为-100到+100,亮度为0到100。
图1-3 R ggplot2默认颜色主题
(Acolour wheel illustrating the choice of five equally spaced colours. This isthedefault scale for discrete variables.)
配色网(http://www.peise.net)就是基于颜色搭配原理设计的颜色主题方案自动生成在线网站。它不仅基于常用的场景给出合适的配色方案,而且还允许用户使用配色工具自行配置出极具个人风格又不失美观的方案,功能完备且实用。色彩搭配基本理论方法除了图1-5所说的三种外,还有:类似色搭配(Analogous)、分裂互补色搭配(Split complement)、矩形搭配(Rectangle (tetradic))和正方形搭配(Square)等。(更多色彩搭配理论:(http://www.tigercolor.com/color-lab/color-theory/color-harmonies.htm )。
图1-4 配色网推出的高级配色工具(http://www.peise.net/tools/web/)
色环又称作为色轮,是种按照色相把色彩排列的呈现方式。当我们开始进行色环排列时,需要把原色按照等距关系排列,如图1-5 的12色5轮色轮所示。
1.单色搭配(Monochromatic):这是一种色相由暗、中、明三种色调组成。这就是单色。单色搭配上并没有形成颜色的层次,但形成了明暗的层次。这种搭配在设计中应用时,出来的效果永远不错,其重要性也可见一斑。
2.补色搭配(Complement):如果颜色方案只包括两种颜色,就会选择色环上对立的2个颜色(在色轮上直线相对的两种颜色称为补色,比如红色和绿色),如图(b)所示。互补色搭配在正式的设计中比较少见,主要由于它色彩之间强烈对比所产生的特殊性和不稳定,但是很显然的是,在各种色相搭配中,互补色搭配无疑是一种最突出的搭配,所以如果你想然你的作品特别引人注目,那互补色搭配或许是种最佳选择。
3.三角形搭配(Triad):如果颜色方案只包括三种颜色,那么就会以120°的间隔选择3个颜色,如图(c)所示。三角形搭配是种能使得画面生动的搭配方式,即使使用了低饱和度的色彩。在使用三角形搭配的时候一定要选出一种色彩作为主色,另外两种作为辅助色。
以此类推,就得到了图1-3 R ggplot2默认颜色主题方案。
(a)单色搭配(Monochromatic);
(b)补色搭配(Complement);
(c)三角形搭配(Triad)
图1-5 三种不同颜色选择的色相环
1.3 颜色主题的搭配原理
我们对相同的数据图表对比不同的颜色效果,如图1-6带散点分布的箱型图所示。(a)-(c)的颜色主题方案分别对应的软件为Excel、Origin和R (ggplot2),图(c)使用的就是图1-3 所示的4种颜色的颜色主题方案。所谓“人靠衣装,佛靠金装”,符合美学规律设计的颜色主题方案往往能很大程度上提高图表的美观程度,如图(c)所示。所以,我们很有必要研究与讲解颜色主题方案的搭配。
(a)Excel默认颜色主题;
(b)Origin默认颜色主题;
(c) R ggplot2默认颜色主题 R语言学习 - 箱线图(小提琴图、抖动图、区域散点图) R语言学习 - 箱线图一步法
图1-6 不同颜色主题的图表效果
R语言作为经典的数据可视化语言,很大的优势就在于它的包(如经典的RColorBrewer包,用法为 colorRampPalette(c('springgreen1', 'slateblue1', 'coral1'))(5) 会生成5种颜色,从绿到黄。)提供了丰富的颜色主题方案,如图1-7所示。Origin 2017、Python(Seaborn包)等绘图软件都有参考与引入改颜色主题方案。该颜色主题方案主要可以分成三大类:单色系、多色系和双色渐变系(这个分类会在后文中详细说明)。
或许你不知道,其实RColorBrewer包的颜色主题方案系列来源于一个颜色主题方案搭配网站:ColorBrewer 2.0 (http://colorbrewer2.org/#type=sequential&scheme=BuGn&n=3),如图1-7-2所示。该网站提供了大量的颜色搭配主题方案,可以供用户学习与使用。强烈建议大家登陆这个网站,自己操作与观看这里面的配色方案,由于版面有限不能全面地介绍ColorBrewer 2.0配色的各个系列与功能。从另一个角度说,可以将图1-7看成ColorBrewer 2.0网页颜色主题系列方案的精华版。
图1-7 RColorBrewer包的颜色主题方案
(https://github.com/timothyrenner/ColorBrewer.jl)
图1-7-2 ColorBrewer2.0网页界面
(http://colorbrewer2.org/#type=sequential&scheme=BuGn&n=3)
ColorBrewer 2.0的配色功能如此强大,它的颜色搭配原理又是什么样呢?其实,它的原理如图1-8所示:通过排列组合实现二值色系、单色系、双色渐变系和多色系等颜色主题方案。其中,最为常用的三种颜色搭配方法如图1-9所示。圆形分布的多色系(circular color systems)是一类特殊的多色系配色方案,如Python Seabron包的hls颜色主题方案。这类颜色方案适合时间类的周期性数据,如小时、天、月、年等有关的时序数据。
图1-8 图表绘制的颜色搭配原理
(http://www.personal.psu.edu/cab38/ColorSch/Schemes.html)
图1-9 图表绘制的颜色搭配三原则
1.4 学术图表的颜色主题
我们毕竟不是专业的设计师,专业的设计师懂的自己根据配色原理与色相轮搭配颜色。如果自己配色,既费时费力,也不一定达到美观的效果。幸好,图1-3和1-7提供了诸多颜色主题方案供大家参考与使用。另外,R语言Wesanderson包、PythonSeaborn包和Colorbrewer2网页也提供了一系列新的颜色主题方案。
尤其需要强调的是R语言ggsci包提供了几个经典期刊的推荐颜色主题方案,包括《Nature》、《Science》等学术期刊。但是,这并不是说投稿这些期刊必须使用这些配色方案,而是说推荐使用,当然你可以选择使用其他颜色主题方案。所以,这些罗列了这么多颜色主题方案,毕竟“萝卜白菜,各有所爱”你只要选择1~2种自己喜欢的,然后就可以应用到自己绘制的学术图表中。
当你问我这幅图表使用哪个颜色主题方案比较美观的时候,我也没法确定。实践出真知。另外,由于不同的数据与图表,可能自己要多尝试不同的颜色主题方案,才能找出哪个颜色主题适合这幅图表。
Wesanderson包:https://github.com/karthik/wesanderson
Python Seabron包: http://seaborn.pydata.org/tutorial/color_palettes.html
Colorbrewer2:http://colorbrewer2.org/#type=qualitative&scheme=Set2&n=8
ggsci包:https://cran.r-project.org/web/packages/ggsci/vignettes/ggsci.html
1.5 颜色方案的拾取使用
刚刚提供给大家这么多颜色主题方案,怎么使用呢?在绘图软件中修改颜色,一般是通过RGB数值设定。这时候,我们就需要获取颜色方案中每个颜色RGB数值或者Hex颜色码,其可以通过以下几种方式获得相关颜色数值:
手动调整数据系列的RGB颜色值有时候觉得还是很麻烦,其实还有一种利用取色器的便捷方法,如PPT和AI软件都有取色器,但是Excel、Origin等绘图软件没有取色器。
对于Excel绘制的图表,可以将图表复制到PPT中,然后使用取色器,拾取自己想要的颜色主题方案的颜色。
对于Origin、R等绘图软件的图表,可以导出svg、eps等矢量格式的图片,然后使用AI软件打开后:1. 选择图片,选择“对象(O)”-“剪切蒙版(M)”-“释放(R)”;2. 在选择图片“对象(O)”-“复合路径(O)”-“释放(R)”;3.选择要修改的图表元素,然后使用取色器调整“填充”和“描边(边框)”颜色;4.导出相应的标量格式的图片,同时设定好图片的分辨率。
1.6 颜色主题的应用案例
关于颜色的基础知识讲解这么多,所谓“实践出真知”,这里带大家一起来应用各个颜色主题方案,提升图表的美观性。对于多色系颜色方案的应用,大家很容易使用:直接选择一个颜色主题方案,然后修改数据系列的颜色,如图1-4所示。但是对于单色系和双色渐变系的颜色主题方案的应用,大家可能不是那么容易适应。所以,现在重点给大家讲解单色系和双色渐变系的颜色主题方案的应用。
图1-10(a)是使用Excel 绘制的默认多色系颜色方案的带误差线柱形图,图(b)是使用单色系颜色方案(蓝色系列:
)改进的《Science》期刊上的图表。虽然数据是类别型,但是使用单色系颜色主题方案更加美观。
(a)Excel多色系颜色方案;(b)单色系颜色方案
图1-10 柱形图的单色系颜色方案的应用 R语言学习 - 柱状图
图1-11(a)是使用Excel 绘制的默认多色系颜色方案的曲线散点图,图(b)是使用单色系颜色方案(橙色系列:
)改进的曲线散点图,单色系颜色主题方案就是根据数据系列的数值类别设定,亮度随数值从低到高,如图例所示。图(c)是使用单色系颜色方案再改进的曲线图,省去散点数据标记,只留下曲线以暂时数据系列的规律。
(a) Excel多色系颜色方案的散点图曲线图; (b)单色系颜色方案的散点曲线图;(c)单色系颜色方案的曲线图
图1-11 散点曲线图的单色系颜色方案的应用 R语言学习 - 线图一步法 R语言学习 - 散点图绘制
图1-11-2(a)是使用红色和蓝色两种不同颜色表示相关系数的数值,蓝色表示负值,圆圈越大表示负相关越大,红色表示正值,圆圈越大表示正相关越大。但是当时有双色渐变系颜色主题(
)改进图表,如图(b)所示:借助圆圈填充颜色的深浅和圆圈的大小两个视觉暗示,更加清晰地表达了数据,更便于读者观察数据之间的关系。中间白色对应数值就是相关系数的分界点0。
(a) R多色系颜色方案;(b)双色渐变系颜色方案
图1-11-2 相关系数图的双色渐变系颜色方案的应用
R语言学习 - 热图美化 (bioinfo.ke.qq.com课程有如何把热图的方块变成圆形的操作,使用geom_point)
图1-12为时间序列的柱形图,图(a)使用蓝色填充柱形数据系列,仅仅使用长度视觉暗示表达数据。但是当时有双色渐变系颜色主题(
)改进图表,如图(b)所示:中间白色对应数值就是相关系数的分界点温度0,当温度越高,红色更深;当温度越低,蓝色更深。借助柱形颜色的深浅和长度两个视觉暗示,更加清晰地表达了数据,更便于读者观察时序数据的变化规律。
(a) R多色系颜色方案;(b)双色渐变系颜色方案
图1-12 时间序列柱形图的双色渐变系颜色方案的应用
(a) R多色系颜色方案
(b)双色渐变系颜色方案
图1-13 条形图的双色渐变系颜色方案的应用
我们平时绘制图表除了要注意颜色主题外,同时还要注意颜色的透明度(Transparency)。颜色的透明度也是一个重要的设置参数,尤其再处理数据系列之间的遮挡问题特别有效。绘图软件中基本都有颜色透明度的设定参数。颜色透明度的设定还是适合于高密度散点图的绘制,通过颜色深浅可以观察数据的分布情况。
(a)设置透明度前; (b)设置透明度后
图1-13-2 颜色透明度的应用
相关推荐
- 如何设计一个优秀的电子商务产品详情页
-
加入人人都是产品经理【起点学院】产品经理实战训练营,BAT产品总监手把手带你学产品电子商务网站的产品详情页面无疑是设计师和开发人员关注的最重要的网页之一。产品详情页面是客户作出“加入购物车”决定的页面...
- 怎么在JS中使用Ajax进行异步请求?
-
大家好,今天我来分享一项JavaScript的实战技巧,即如何在JS中使用Ajax进行异步请求,让你的网页速度瞬间提升。Ajax是一种在不刷新整个网页的情况下与服务器进行数据交互的技术,可以实现异步加...
- 中小企业如何组建,管理团队_中小企业应当如何开展组织结构设计变革
-
前言写了太多关于产品的东西觉得应该换换口味.从码农到架构师,从前端到平面再到UI、UE,最后走向了产品这条不归路,其实以前一直再给你们讲.产品经理跟项目经理区别没有特别大,两个岗位之间有很...
- 前端监控 SDK 开发分享_前端监控系统 开源
-
一、前言随着前端的发展和被重视,慢慢的行业内对于前端监控系统的重视程度也在增加。这里不对为什么需要监控再做解释。那我们先直接说说需求。对于中小型公司来说,可以直接使用三方的监控,比如自己搭建一套免费的...
- Ajax 会被 fetch 取代吗?Axios 怎么办?
-
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!今天给大家带来的主题是ajax、fetch...
- 前端面试题《AJAX》_前端面试ajax考点汇总
-
1.什么是ajax?ajax作用是什么?AJAX=异步JavaScript和XML。AJAX是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX可以使网页实...
- Ajax 详细介绍_ajax
-
1、ajax是什么?asynchronousjavascriptandxml:异步的javascript和xml。ajax是用来改善用户体验的一种技术,其本质是利用浏览器内置的一个特殊的...
- 6款可替代dreamweaver的工具_替代powerdesigner的工具
-
dreamweaver对一个web前端工作者来说,再熟悉不过了,像我07年接触web前端开发就是用的dreamweaver,一直用到现在,身边的朋友有跟我推荐过各种更好用的可替代dreamweaver...
- 我敢保证,全网没有再比这更详细的Java知识点总结了,送你啊
-
接下来你看到的将是全网最详细的Java知识点总结,全文分为三大部分:Java基础、Java框架、Java+云数据小编将为大家仔细讲解每大部分里面的详细知识点,别眨眼,从小白到大佬、零基础到精通,你绝...
- 福斯《死侍》发布新剧照 "小贱贱"韦德被改造前造型曝光
-
时光网讯福斯出品的科幻片《死侍》今天发布新剧照,其中一张是较为罕见的死侍在被改造之前的剧照,其余两张剧照都是死侍在执行任务中的状态。据外媒推测,片方此时发布剧照,预计是为了给不久之后影片发布首款正式预...
- 2021年超详细的java学习路线总结—纯干货分享
-
本文整理了java开发的学习路线和相关的学习资源,非常适合零基础入门java的同学,希望大家在学习的时候,能够节省时间。纯干货,良心推荐!第一阶段:Java基础重点知识点:数据类型、核心语法、面向对象...
- 不用海淘,真黑五来到你身边:亚马逊15件热卖爆款推荐!
-
Fujifilm富士instaxMini8小黄人拍立得相机(黄色/蓝色)扫二维码进入购物页面黑五是入手一个轻巧可爱的拍立得相机的好时机,此款是mini8的小黄人特别版,除了颜色涂装成小黄人...
- 2025 年 Python 爬虫四大前沿技术:从异步到 AI
-
作为互联网大厂的后端Python爬虫开发,你是否也曾遇到过这些痛点:面对海量目标URL,单线程爬虫爬取一周还没完成任务;动态渲染的SPA页面,requests库返回的全是空白代码;好不容易...
- 最贱超级英雄《死侍》来了!_死侍超燃
-
死侍Deadpool(2016)导演:蒂姆·米勒编剧:略特·里斯/保罗·沃尼克主演:瑞恩·雷诺兹/莫蕾娜·巴卡林/吉娜·卡拉诺/艾德·斯克林/T·J·米勒类型:动作/...
- 停止javascript的ajax请求,取消axios请求,取消reactfetch请求
-
一、Ajax原生里可以通过XMLHttpRequest对象上的abort方法来中断ajax。注意abort方法不能阻止向服务器发送请求,只能停止当前ajax请求。停止javascript的ajax请求...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 简介 (30)
- HTML 响应式设计 (31)
- HTML URL 编码 (32)
- HTML Web 服务器 (31)
- HTML 表单属性 (32)
- HTML 音频 (31)
- HTML5 支持 (33)
- HTML API (36)
- HTML 总结 (32)
- HTML 全局属性 (32)
- HTML 事件 (31)
- HTML 画布 (32)
- HTTP 方法 (30)
- 键盘快捷键 (30)
- CSS 语法 (35)
- CSS 轮廓宽度 (31)
- CSS 谷歌字体 (33)
- CSS 链接 (31)
- CSS 定位 (31)
- CSS 图片库 (32)
- CSS 图像精灵 (31)
- SVG 文本 (32)
- 时钟启动 (33)
- HTML 游戏 (34)
- JS Loop For (32)
