在matplotlib中有哪些命名颜色可用于绘图?我可以在matplotlib文档中找到一个列表,声称这些是唯一的名称:

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

然而,我发现这些颜色也可以使用,至少在这种情况下:

scatter(X,Y, color='red')
scatter(X,Y, color='orange')
scatter(X,Y, color='darkgreen')

但这些都不在上面的清单上。有没有人知道可供选择的已命名颜色的详尽列表?


当前回答

要获得在图中使用的完整颜色列表:

import matplotlib.colors as colors
colors_list = list(colors._colors_full_map.values())

所以,你可以用这种方式快速地使用:

scatter(X,Y, color=colors_list[0])
scatter(X,Y, color=colors_list[1])
scatter(X,Y, color=colors_list[2])
...
scatter(X,Y, color=colors_list[-1])

其他回答

import matplotlib.colors as mcolors

list(mcolors.BASE_COLORS.values())

要获得在图中使用的完整颜色列表:

import matplotlib.colors as colors
colors_list = list(colors._colors_full_map.values())

所以,你可以用这种方式快速地使用:

scatter(X,Y, color=colors_list[0])
scatter(X,Y, color=colors_list[1])
scatter(X,Y, color=colors_list[2])
...
scatter(X,Y, color=colors_list[-1])

我总是忘记我想用的颜色的名字,然后总是回到这个问题=)

之前的答案很好,但我发现从发布的图像中获得可用颜色的概述有点困难。我更喜欢将颜色与相似的颜色组合在一起,所以我稍微调整了上面评论中提到的matplotlib答案,以获得按列排序的颜色列表。顺序与我用眼睛排序的方式不一样,但我认为它提供了一个很好的概述。

我更新了图像和代码,以反映“rebeccappurple”已被添加,三种圣人颜色已被移动到“xkcd:”前缀下,因为我最初发布了这个答案。

与matplotlib示例相比,我实际上没有做太多更改,但为了完整起见,这里是代码。

import matplotlib.pyplot as plt
from matplotlib import colors as mcolors


colors = dict(mcolors.BASE_COLORS, **mcolors.CSS4_COLORS)

# Sort colors by hue, saturation, value and name.
by_hsv = sorted((tuple(mcolors.rgb_to_hsv(mcolors.to_rgba(color)[:3])), name)
                for name, color in colors.items())
sorted_names = [name for hsv, name in by_hsv]

n = len(sorted_names)
ncols = 4
nrows = n // ncols

fig, ax = plt.subplots(figsize=(12, 10))

# Get height and width
X, Y = fig.get_dpi() * fig.get_size_inches()
h = Y / (nrows + 1)
w = X / ncols

for i, name in enumerate(sorted_names):
    row = i % nrows
    col = i // nrows
    y = Y - (row * h) - h

    xi_line = w * (col + 0.05)
    xf_line = w * (col + 0.25)
    xi_text = w * (col + 0.3)

    ax.text(xi_text, y, name, fontsize=(h * 0.8),
            horizontalalignment='left',
            verticalalignment='center')

    ax.hlines(y + h * 0.1, xi_line, xf_line,
              color=colors[name], linewidth=(h * 0.8))

ax.set_xlim(0, X)
ax.set_ylim(0, Y)
ax.set_axis_off()

fig.subplots_adjust(left=0, right=1,
                    top=1, bottom=0,
                    hspace=0, wspace=0)
plt.show()

其他命名颜色

更新2017-10-25。我将以前的更新合并到这个部分中。

xkcd

如果你想在使用matplotlib绘图时使用其他命名颜色,你可以使用xkcd众包颜色名称,通过'xkcd:'前缀:

plt.plot([1,2], lw=4, c='xkcd:baby poop green')

现在你可以使用大量的命名颜色了!

默认的Tableau颜色可以在matplotlib中通过'tab:'前缀获得:

plt.plot([1,2], lw=4, c='tab:green')

有十种不同的颜色:

HTML

你也可以通过他们的HTML十六进制代码绘制颜色:

plt.plot([1,2], lw=4, c='#8f9805')

这更类似于指定一个RGB元组,而不是指定一个命名的颜色(除了十六进制代码作为字符串传递之外),并且我将不包括您可以从中选择的1600万种颜色的图像……


有关更多详细信息,请参考matplotlib颜色文档和指定可用颜色的源文件_color_data.py。


你可以用这本颜色最多的字典。 z = {'Black':(0,0,0), 'White':(255,255,255), 'Red': (255,0,0), “石灰”:(0255 0) “蓝色”:(0,0255), “黄 ': ( 255255年,0), “青色”:(0255255), “樱红色”:(255、0255), “银”:(192,192,192), “格雷”:(128,128,128), 'Maroon':(128,0,0), 'Olive':(128,128,0), 'Green':(0,128,0), “紫色”:(128、0128), 'Teal':(0,128,128), 'Navy':(0,0,128)}

除了BoshWash的答案,下面是他的代码生成的图片: