我在
matplotlib
中看过很多关于创建自定义颜色图的帖子,但是我找不到是否可以按名称调用此类自定义颜色图(我想这首先需要某种方式将自定义颜色图添加到列表中可查找/内置颜色图)。
举个例子,我想做这样的事情:
plt.scatter(..., cmap='my_cmap')
我知道我可以直接在那里传递颜色图,但是如果我经常想使用这个颜色图并且希望避免在将它作为
cmap
参数传递之前检索/定义它怎么办?
根据Matplotlib 3.7,您可以/需要使用
register
:
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
cmap = mpl.colors.ListedColormap(["#fd635c", "#00b9a8", "#124191"])
mpl.colormaps.register(cmap, name="my_cmap")
np.random.seed(123456)
x = np.random.rand(100) * 3,
y = np.random.rand(100) * 3
z = np.random.randint(0, 3, 100)
plt.scatter(x=x, y=y, c=c, cmap="my_cmap")
plt.colorbar()
输出:
display(cmap)
plt.show();