手动设置颜色条Matplotlib的色彩映射

时间:2016-07-01 15:46:42

标签: python matplotlib contour colorbar colormap

我想创建以下颜色映射。

mycolorbar1 =  [dark-violet light-green dark-red dark-blue]

mycolorbar2 =  [dark-brown dark-red]

然后我可以在我的代码的以下部分使用它们。

plt.tricontourf(triang1, Z1,v1,cmap=mycolorbar1, norm=plt.Normalize(vmin=v1mi,vmax=v1ma))

plt.tricontourf(triang2, Z2,v2,cmap=mycolorbar2, norm=plt.Normalize(vmin=v2mi,vmax=v2ma))

非常感谢您的帮助和帮助。

1 个答案:

答案 0 :(得分:2)

虽然帖子我的评论链接到您的问题的答案,但它可能过于复杂。 Joe Kington在this post中使用LinearSegmentedColormap.from_list()来实现自定义色彩映射,这是一种更为直接的方法。

from matplotlib.colors import LinearSegmentedColormap

color_dict1 = {'dark_violet': '#880088',
               'light_green': '#00CC00',
               'dark_red':    '#AA0000',
               'dark_blue':   '#0000AA'}

color_dict2 = {'dark_brown': '#d95f0e',
               'dark_red':   '#e34a33'}


mycolorbar1 = LinearSegmentedColormap.from_list('mycolorbar1', [
    color_dict1['dark_violet'],
    color_dict1['light_green'],
    color_dict1['dark_red'],
    color_dict1['dark_blue']])

mycolorbar2 = LinearSegmentedColormap.from_list('mycolorbar2', [
    color_dict2['dark_brown'],
    color_dict2['dark_red']])

这样你就可以获得像

这样的情节

enter image description here