用python的matplotlib
画图的时候,无论我们画的是线形图、散点图还是柱状图, 我们都需要为图片设置颜色。因此,了解matplotlib的内置颜色设置尤为重要。
Matplotlib中最常用的颜色有以下八种,其字母表示、缩写及图例如下:
颜色 | 字母 | 缩写 |
---|---|---|
红色 | red | r |
绿色 | green | g |
蓝色 | blue | b |
黄色 | yellow | y |
蓝绿色 | cyan | c |
粉紫色 | magenta | m |
黑色 | black | k |
白色 | white | w |
在matplotlib中,默认的颜色盘通过参数rcParams["axes.prop_cycle"]
参数来指定,初始的调色盘就是T10调色盘
。
T10调色盘适用于离散分类,其颜色名称以tab:
为前缀,具体的包含了以下10种颜色:
颜色 | 颜色 | 颜色 | 颜色 | 颜色 |
---|---|---|---|---|
tab:blue | tab:orange | tab:green | tab:red | tab:purple |
tab:brown | tab:pink | tab:gray | tab:olive | tab:cyan |
xkcd
调色盘是通过对上万名参与者进行调查而总结出的954种最常用的颜色,官方网站: https://xkcd.com/color/rgb/。
网站中的部分颜色显示如下:
在matplotlib中,通过xkcd:
前缀加对应的颜色名称进行使用,而且是不区分大小写的,代码及图例如下:
plt.pie(x=[1,2,3,4], colors=['xkcd:blue','xkcd:orange','xkcd:green','xkcd:red'])
X11
系列颜色通过名称来对应具体的颜色编码,后来的CSS
颜色代码也是在其基础上发展而来,部分颜色示意如下:
在matplotlib中,X11/CSS4相关的颜色名称和十六进制编码存储在一个字典中,可以通过以下方式进行查看:
import matplotlib._color_data as mcd
for key in mcd.CSS4_COLORS:
print('{}: {}'.format(key, mcd.CSS4_COLORS[key]))
部分结果如下:
'aliceblue': '#F0F8FF',
'antiquewhite': '#FAEBD7',
'aqua': '#00FFFF',
'aquamarine': '#7FFFD4',
'azure': '#F0FFFF',
'beige': '#F5F5DC',
'bisque': '#FFE4C4',
'black': '#000000',
'blanchedalmond': '#FFEBCD',
'blue': '#0000FF',
'blueviolet': '#8A2BE2',
通过颜色名称来使用X11/CSS4颜,用法及图例如下:
plt.pie(x=[1,2,3,4], colors=['aliceblue','antiquewhite','aqua','aquamarine'])
十六进制的颜色代码可以精确的指定颜色,在matplotlib中当然也支持,用法及图例如下:
plt.pie(x=[1,2,3,4], colors=['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728'])
所有的颜色都是有RGB三原色构成,在matplotlib中,可以通过一个元组来表示表示red、green、blue三原色的比例,以及一个可选的alpha
值来表示透明度,取值范围都是0到1,用法及图例如下:
plt.pie(x=[1,2,3,4], colors=[(0.1, 0.2, 0.5),(0.1, 0.3, 0.5),(0.1, 0.4, 0.5),(0.1, 0.5, 0.5)])
在matplotlib中,通过0到1之间的浮点数来对应灰度梯度,在使用时,为了有效区分,需要通过引号将其装换为字符,用法及图例如下:
plt.pie(x=[1,2,3,4], colors=['0','0.25', '0.5', '0.75'])
网站: https://www.webucator.com/article/python-color-constants-module/
该网页提供了一些常用颜色。
通过上述几种方式,可以灵活地指定我们需要的颜色。
[1] 一文搞懂matplotlib中的颜色设置
[2] python中matplotlib中内置的颜色名称列表
[3] List of named colors