2

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' 参数?

4

3 回答 3

2

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

  • 十六进制代码:一个 Python 字符串,例如'#d2691e'.
  • Web 颜色名称:一个 Python 字符串,例如'chocolate'.
  • RGB 值:一个 Python 元组,按 RGB: 的顺序排列(0.824, 0.412, 0.118)。组件应归一化以落在 [0, 1] 范围内。
  • 灰度:给出灰度的 Python 字符串,例如'0.7'.

无论何时需要一种颜色,这些形式都可以像标准的单字母颜色名称一样使用。

见: http: //matplotlib.org/api/colors_api.html

于 2013-01-13T10:51:29.707 回答
2

您还可以定义自己的颜色字典,如下面的 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()
于 2016-08-18T02:56:29.837 回答
1

另一种可能性是直接编辑 matplotlib 颜色列表,使用

import matplotlib
matplotlib.colors.ColorConverter.colors['mc1'] = (0.976,0.333,0.518)

不过,我会小心使用这个选项,因为它会破坏一些有用的 matplotlib 语法。例如,将颜色称为“mo”可能会混淆它,因为“o”可以表示标记样式,“m”可以表示洋红色。最好坚持使用当前未使用的单个字母,例如 a、ej 等。

于 2013-10-28T02:29:04.510 回答