在matplotlib(特别是matplotlib.cm)中,可以调用色彩映射表中的颜色,如下所示
import matplotlib.cm as cm
cm.viridis(0.5) #viridis is the name of a colormap它从色彩映射表的中心(也就是(0.127568, 0.566949, 0.550556, 1.0))获取颜色,基本上我希望能够调用一个从库中获取的色彩映射表palletable。您可以导入特定的调色板,如下所示:
from palettable.colorbrewer.qualitative import Dark2_7这导入了色彩映射表"Dark2_7“,但我不知道如何”调用“它,就像我对viridis所做的那样,我刚刚开始,我真的一无所知,谢谢,如果措辞奇怪,请询问您是否需要更多细节或是否不够清楚。
发布于 2020-02-01 09:55:24
您可以使用从0到6的i值将单个颜色命名为Dark2_7.mpl_colors[i] (因为该映射中有7种颜色)。或者,如果你使用Dark2_7.mpl_colormap(0.5),你可以像使用viridis一样使用它。
下面是一个在散点图中使用它的示例。请注意,默认版本是插值了所有颜色的连续颜色映射。如果需要离散颜色贴图,请使用ListedColormap(Dark2_7.mpl_colors)。
from matplotlib import pyplot as plt
import numpy as np
from palettable.colorbrewer.qualitative import Dark2_7
from matplotlib.colors import ListedColormap
x = np.random.uniform(-1, 1, 10000)
y = np.random.uniform(-1, 1, 10000)
z = np.sqrt(x**2+y**2)/1.4
fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(12, 5))
scat1 = ax1.scatter(x, y, c=z, vmin=0, vmax=1, s=1, cmap=Dark2_7.mpl_colormap)
plt.colorbar(scat1, ax=ax1)
scat2 = ax2.scatter(x, y, c=z, vmin=0, vmax=1, s=1, cmap=ListedColormap(Dark2_7.mpl_colors))
plt.colorbar(scat2, ax=ax2)
plt.show()

https://stackoverflow.com/questions/60013184
复制相似问题