如何在matplotlib中添加自定义颜色字母?

时间:2013-01-13 09:03:47

标签: colors matplotlib

Matplotlib仅定义以下基本颜色:

•b: blue
•g: green
•r: red
•c: cyan
•m: magenta
•y: yellow
•k: black
•w: white

我想定义更多自定义颜色字母,例如

mc1 = RGB(164,106,228)
mc2 = RGB(220,170,114)
mc3 = RGB(249,85,132)

然后我可以定义

my_color_list = ['g','r','y','b','c','m','k', 'mc1','mc2','mc3']

然后my_color_list可以用于下面的演示:

import matplotlib.pyplot as plt
dt = [1,2,3,4,5,6,7,8,9]
my_color_list = ['g','r','y','b','c','m','k', 'mc1','mc2','mc3'] # not valid 
bar(range(len(dt)),dt,color=my_color_list)
plt.show()

那么如何在matplotlib中定义自定义颜色字母?或者,如果我有一个RGB元组列表,如何将RGB元组与基本颜色字母组合在一起并分配给'plot'/'bar'命令的'color'参数?

3 个答案:

答案 0 :(得分:1)

matplotlib支持多种指定颜色的方法。除基本颜色外,您还可以使用CSS颜色十六进制代码,Web颜色名称和RGB值。

  • 十六进制代码:Python字符串,例如'#d2691e'
  • Web颜色名称:Python字符串,例如'chocolate'
  • RGB值:Python元组,按RGB的顺序:(0.824, 0.412, 0.118)。应将组件归一化为[0,1]。
  • Greyscale:提供灰度的Python字符串,例如: '0.7'

每当需要颜色时,这些表格就像标准的单字母颜色名称一样使用。

请参阅:http://matplotlib.org/api/colors_api.html

答案 1 :(得分:1)

另一种可能性是使用

直接编辑matplotlib颜色列表
import matplotlib
matplotlib.colors.ColorConverter.colors['mc1'] = (0.976,0.333,0.518)
但是,我会小心这个选项,因为它可以破坏一些有用的matplotlib语法。例如,调用颜色'mo'可能会混淆它,因为'o'可能意味着标记样式而'm'可能意味着洋红色。最好坚持使用当前未使用的单个字母,如a,e-j等。

答案 2 :(得分:1)

您还可以定义自己的颜色字典,如下面的MWE所示。

import matplotlib.pyplot as plt

col = {'azure':(0.2,0.4,0.6), 'grey':(0.69,0.69,0.69), 'hotpink':(0.68,0.14,0.37), 'babyblue':(0.87,0.94,0.94)}

ch = 'grey'
plt.plot([1,2,3,4],color=col[ch])
plt.show()