Python专题, 语言

论文中图片的配色(以Matplotlib为例)

颜色是电磁波频率的体现,具有连续性和叠加性,有无穷多种。研究人员根据人眼中辨别颜色的锥状细胞的性质,提出了三原色的概念。以RGB色彩为例,在计算机中,即使把三原色离散化后,总共也有256×256×256=16777216种,即一千六百万多种。如果考虑颜色组合,那么有(10^7)^n种选择,其中n为组合颜色的个数。如果考虑颜色的排列和渐变,则可选择的会更多。当考虑了美感、特殊风格等,颜色选择范围会有所降低,但仍然是天文数字的范围。

本篇做一些颜色方面的记录,可给论文中图片的配色做参考(非专业美术),之后可能不定期更新补充。额外说明:数据远比颜色以及美工重要得多,因此可不需要费太多精力在这上面。

一、RGB纯色

在画图中,可能会需要用到RGB的16进制形式。RGB转16进制有很多在线工具,这里可通过Python来实现(用到个人的软件包Guan https://py.guanjihuan.com)

import guan
print(guan.rgb_to_hex((255, 0, 0)))
print(guan.hex_to_rgb('#FF0000'))

RGB纯色的例子:

import numpy as np
import matplotlib.pyplot as plt
import guan

x = np.linspace(-2, 2)
y = np.exp(x)
plt.plot(x, y, color=guan.rgb_to_hex((255, 0, 0)))
plt.plot(x, y+1, color=guan.rgb_to_hex((0, 255, 0)))
plt.plot(x, y+2, color=guan.rgb_to_hex((0, 0, 255)))
plt.show()

运行结果:

二、Matplotlib内置的颜色名称

官方参考资料:https://matplotlib.org/3.5.2/gallery/color/named_colors.html

Matplotlib中命名过的颜色列表(List of named colors):

说明这里rgb的颜色并不是RGB纯色,例子如下:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-2, 2)
y = np.exp(x)
plt.plot(x, y, color='r')
plt.plot(x, y+1, color='g')
plt.plot(x, y+2, color='b')
plt.show()

plt.plot(x, y, color='tab:red')
plt.plot(x, y+1, color='tab:green')
plt.plot(x, y+2, color='tab:blue')
plt.show()

运行结果:

虽然都是红绿蓝,但和之前的不完全相同,这里更具美感。其中,Tableau Palette的十个颜色是Matplotlib画图的默认颜色,按列顺序依次调用。例子如下:

import numpy as np
import matplotlib.pyplot as plt
x_array = np.linspace(-5, 5, 3)
y_array = np.transpose([x_array, x_array+1, x_array+2, x_array+3, x_array+4, x_array+5, x_array+6, x_array+7, x_array+8, x_array+9, x_array+10, x_array+11, x_array+12])
plt.plot(x_array, y_array)
plt.show()

运行结果:

实际上,通过Matplotlib的内置颜色名称已经可以实现大部分画图中的颜色选择和搭配。

三、RGB的更多选择

一个RGB颜色有256×256×256=16777216种。通过调节RGB的各个值(或者16位进制的值),可以得到任意颜色,而不仅仅局限于Matplotlib的颜色风格中。

在一些软件中有颜色选择的分类。此外,也有一些颜色选择的网站,可当作参考:

其他参考资料:

[1] 科研论文配色【不断更新】

[2] 科研作图配色避雷指南

[3] 跟顶级期刊学图片配色,附专属色号

[4] 学术文章绘图常用颜色搭配(附RGB值)

[5] 科学上最令人舒服的十种颜色(RGB)

955 次浏览

【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

评论说明:
(1)在保留浏览器缓存的前提下,目前支持72小时自主修改或删除个人评论。如果自己无法修改或删除评论,可再次评论或联系我。如有发现广告留言,请勿点击链接,博主会不定期删除。
(2)评论支持Latex公式。把latexpage作为标签放在任何位置,评论中的公式可正常编译,示例:
$Latex formula$  [latexpage]

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注