一、色彩(基础知识)
1、两类色彩空间
- RGB(三色构成任何色) — 屏幕显示
- CMYK — 印刷
2、最直观的色彩模式 —— HSL
色调(H)、饱和度(S)、亮度(L) ; 色轮上任何颜色均可由HSL构建
- 色调 :即颜色名
- 亮度 : 不赘述
- 饱和度 :鲜艳程度(不要太高,否则会刺眼)
3、16进制颜色代码 :RGB的另一种呈现方式
- 白色 —— #FFFFFF (255,255,255)
二、配色工具和参考资料
-
多色彩配色工具(>5种):https://www.toptal.com/designers/colourcode
-
Adobe Color CC https://color.adobe.com/zh/create
-
四色配色网站:colordrop.io 、 color.hailpixel.com
-
五色配色网站:klart.io/colors
-
三色配色网站:https://colors.lol/
-
双色配色网站:vanschneider.com/colors
-
khroma.co 人工智能配色(根据自己喜欢的50种颜色,智能组合)
-
图片搜索 : https://www.behance.net/
(可以获取不同颜色下的优秀作品)可以拿到颜色提取工具(例如Adobe Color CC支持该功能)里提取颜色,学习方案。
三、配色注意事项
1、突出重点,严禁亮色底+亮色图。
2、善用光感、渐变、透明度
3、保持主题一致,从主要内容(例如徽章等中提取背景色)
4、配色原则:
-
不刺眼(饱和度不要太高)
-
亮度可适当调整(饱和度调低后若颜色过于压抑,可略提高亮度)
-
调整色调 —— 选最舒服的颜色。
四、科研绘图配色
1、整篇论文的所有配图,应当有一个主色调,然后使用近似色(互补色、组合色)作辅助色。尽量使用柔和的颜色(不要选刺眼的纯色)。
2、配色要突出关键信息、展示逻辑关系。
3、一些基础的数据点、线配色和字体建议(主要摘自https://www.bilibili.com/video/BV1J7411G7Uv?spm_id_from=333.999.0.0;视频内容有例子,更详细)
(1)单条数据线(点):
-
常用红色、黑色;可用深灰蓝、深紫蓝;不适合用绿色橙色等中间颜色。
-
需要叠加其它彩色信息时,适合用黑色;细密、噪音大的数据适合用深灰色。
-
灰度图、伪彩色图中的线条、标记适合用较亮的彩色(红黄橙)
-
多彩色图(底色)中的同类型数据点适合用黑色(可以加轮廓)
-
多彩色图(底色)中的线可以用和背景色对比强烈的颜色
(2)两条数据线:
-
黑-红/蓝/绿 常用于主次对比
-
红蓝对比:用于对等数据对比,常用
-
互补色对比(蓝-橙;紫红-青绿)
-
深浅对比(黑-灰;深蓝-浅蓝;深红-浅红;)一般用于表示同一个量不同处理下的变化
-
饱和度对比(灰-红;灰-蓝)常用于背景数据(灰色)上叠加的拟合线、平滑线
(3)字体:
-
若期刊无特定要求,建议首选sans serif(无衬线)字体
-
非必要不加颜色和粗斜
-
数量-单位/运算符 之间记得空格
4、多看领域内顶级期刊的文章配图和期刊的刊文要求,学习配色方案。
5、从优秀文章中抽取配色是最好的配色/学习方案:此处给出一段提取配色的Python代码:
1.# 该函数用于提取配色
2.# 建议提供PNG或JPEG格式
3.# 支持远程连接
4.import numpy as np
5.import pandas as pd
6.from PIL import Image
7.import matplotlib.pyplot as plt
8.from haishoku.haishoku import Haishoku
9.%matplotlib inline
10.
11.def get_coloring_scheme(path):
12. Haishoku_result = Haishoku.loadHaishoku(path)
13. percentage = []
14. rgb_255 = []
15. rgb_1 = []
16. pd.set_option('max_colwidth', 512) #强制放大单元格宽度
17. for i in Haishoku_result.palette:
18. percentage.append(i[0])
19. rgb_255.append(i[1])
20. rgb_1.append(tuple(np.array(i[1])/255))
21.
22. df = pd.DataFrame({'percentage':percentage,'rgb_255':rgb_255,'rgb_1':rgb_1})
23. print(df.to_string()) #这样展示会美观些,不会换行
24.
25. color_map = rgb_255
26. fig, axs = plt.subplots(1, len(color_map), figsize=(20,20))
27.
28. for i, color in enumerate(color_map):
29. img = Image.new('RGB', (6, 6), color)
30. ax = axs[i]
31. ax.set_title(color)
32. ax.set_xticks([]) # 去掉轴
33. ax.set_yticks([])
34. ax.imshow(img)
35. plt.show()
36.
37.get_coloring_scheme('./image/example.png')
五、图表选择和绘制
1、图表选择参考
-
https://datavizcatalogue.com/ZH/ (数据可视化工具/图表目录)
-
https://www.youtube.com/watch?v=KzyvIBjBkuc(与不同数据关系逻辑匹配的图形)
-
https://blog.adioma.com/how-to-think-visually-using-visual-analogies-infographic/ (使用图表的一些建议)
2、考虑特殊人群(主要指色盲人士)
参考: https://www.nature.com/articles/d41586-021-02696-z
红绿色盲(red–green colour blindness)是最常见的色觉辨认障碍;蓝黄色盲(blue–yellow colour blindness)次之,而全色盲(achromatopsia,即无法辨认大多数的颜色)则更罕见。
不当的颜色选择会使数据失真;彩虹颜色方案很可能扭曲数据。
人们分辨红色的能力通常不如其他颜色,因此严重依赖红色的色彩组合会掩盖数据细节。
有些颜色方案难以很好地转化为灰度——当科学家打印黑白版的论文供离线阅读时,这会导致问题。
因此:
为了绘制无阅读障碍的图形,需要:
-
尽量不使用彩虹颜色方案。多使用感知上统一的颜色方案,如viridis或cividis。
-
避免使用红色。特别是结合绿色一起使用时。
-
使用灰色。在灰度中检查图像,或将颜色处理为完全不饱和。
-
选择人人都适用的调色板,如Color Universal Design或Color Blind 10 Palette,或使用i want hue或Viz Palette创建独家调色板。
-
思路放宽。使用形状和线条纹理等特征来区分颜色。
-
提前测试。使用Color Oracle或Coblis等模拟器,以确保每个人都能准确理解图像。
3、基础绘图代码片段集锦