我总是忘记我想用的颜色的名字,然后总是回到这个问题=)
之前的答案很好,但我发现从发布的图像中获得可用颜色的概述有点困难。我更喜欢将颜色与相似的颜色组合在一起,所以我稍微调整了上面评论中提到的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。