如何在python中自定义colorbar?

时间:2017-04-04 02:54:39

标签: python matplotlib colorbar colormap

使用此代码,我不知道如何自定义颜色条。这个webiste上的色彩图无法满足我。

shade = m.contourf(Lon,Lat,TBB,np.arange(-90, -20, 10),extend='both',cmap=plt.cm.get_cmap('jet'))       
m.colorbar(shade)

my_colorbar

我想用明显的颜色条绘制这样的图片。所以我该怎么做?      colorbar

2 个答案:

答案 0 :(得分:4)

您可以使用matplotlib.colors.LinearSegmentedColormap()matplotlib.colors.ListedColormap()定义自己的色彩映射,并将其用于绘图。

示例:

import numpy as np; np.random.seed(0)
import matplotlib.pyplot as plt
import matplotlib.colors

x = np.arange(0,25)
a = np.random.randint(0,130, size=(25,25))-115
a = np.sort(a).reshape(25,25)

colors = ["#eaa941", "#efef39", "#53a447", "#3b387f", "#48a2ba"]
cmap= matplotlib.colors.ListedColormap(colors)
cmap.set_under("crimson")
cmap.set_over("w")
norm= matplotlib.colors.Normalize(vmin=-100,vmax=-0)

fig, ax = plt.subplots()
im = ax.contourf(x,x,a, levels=[-100,-80,-60,-40,-20,0],
                 extend='both',cmap=cmap, norm=norm)

fig.colorbar(im, extend="both")

plt.show()

enter image description here

答案 1 :(得分:0)

看起来很像spectral色彩图,它在matplotlib页面上给出..