使用matplotlib中会遇到选择颜色的问题,很多人会觉得自带的matlab风格的颜色不好看。好在Matplotlib已经预见到了这个问题,除了支持最基本的matlab传统颜色之外,还支持很多种颜色的表达方式:
RGB 或者 RGBA 浮点值元组,
[0, 1]
之间,例如(0.1, 0.2, 0.5)
或者(0.1, 0.2, 0.5, 0.3)
。RGB 或者 RGBA 十六进制字符串,例如
#0F0F0F
或者#0F0F0F0F
。
[0, 1]
之间的浮点值的字符串表示,用于表示灰度,例如0.5
。
{‘b‘, ‘g‘, ‘r‘, ‘c‘, ‘m‘, ‘y‘, ‘k‘, ‘w‘}
之一。X11/CSS4 颜色名称。
XKCD 颜色之一,以
‘xkcd:‘
为前缀,例如‘xkcd:sky blue‘
。
{‘C0‘, ‘C1‘, ‘C2‘, ‘C3‘, ‘C4‘, ‘C5‘, ‘C6‘, ‘C7‘, ‘C8‘, ‘C9‘}
之一。
{‘tab:blue‘, ‘tab:orange‘, ‘tab:green‘, ‘tab:red‘, ‘tab:purple‘, ‘tab:brown‘, ‘tab:pink‘, ‘tab:gray‘, ‘tab:olive‘, ‘tab:cyan‘}
之一。这是 T10 调色板的 Tableau 颜色(默认的色相环)
在这篇文章中,作者提到的颜色表示法比较简单,是上面提到的X11颜色描述法。在X11的wiki中也列出了所有颜色和对应的英文名称:
另外要注意的是matplotlib中的颜色都是大小写敏感的,wiki中提供的大写颜色名称并不一定能直接使用,而是要写成小写。
另一种直接使用现成颜色的方法是使用上面提到的xkcd颜色。在这个网站可以查到xkcd标签所对应的颜色。说起来xkcd颜色的来源也是比较神奇,xkcd做了一个调查,调查用户对于各种颜色的命名,最终得到了xkcd颜色名。因此xkcd颜色和X11颜色很多是不同的,相同的名字可能对应不同的颜色。matplotlib提供了一个对照表来对比这两种体系的命名不同: