当我';m使用matplotlib I';在python中绘制颜色条;我犯了一个错误

当我';m使用matplotlib I';在python中绘制颜色条;我犯了一个错误,python,matplotlib,colorbar,Python,Matplotlib,Colorbar,我正在使用Python2.7,并想制作一个简单的颜色条。我现在做的是: import matplotlib.pylab as plt import matplotlib as mpl redgreendict = {'red':[(0.0, 1.0, 1.0), (0.5, 1.0, 1.0) ,(1.0, 0.0, 0.0)], 'green':[(0.0, 0.0, 0.0), (0.5, 1.0, 1.0), (1.0, 1.0, 1.0)],

我正在使用Python2.7,并想制作一个简单的颜色条。我现在做的是:

import matplotlib.pylab as plt
import matplotlib as mpl

redgreendict = {'red':[(0.0, 1.0, 1.0), (0.5, 1.0, 1.0) ,(1.0, 0.0, 0.0)],
                'green':[(0.0, 0.0, 0.0), (0.5, 1.0, 1.0), (1.0, 1.0, 1.0)],
                'blue':[(0.0, 0.2, 0.0), (0.5, 1.0, 1.0), (1.0, 0.2, 0.0)]}

fig = plt.figure()
ax1 = fig.add_axes([0.05, 0.08, 0.9, 0.08])
cmap = mpl.colors.LinearSegmentedColormap('redgreen', redgreendict, 1000)

cb1 = mpl.colorbar.ColorbarBase(ax1, cmap, orientation='vhorizontal')
我得到这个错误信息:

File "figutils_used_one.py", line 1208, in make_europe_graph
cb1   = matplotlib.colorbar.ColorbarBase(ax1, cmap, orientation='vhorizontal')

File "C:\Anaconda\lib\site-packages\matplotlib\colorbar.py", line 320, in __init__
self.config_axis()

File "C:\Anaconda\lib\site-packages\matplotlib\colorbar.py", line 360, in config_axis
ax.xaxis.set_label_position(self.ticklocation)

File "C:\Anaconda\lib\site-packages\matplotlib\axis.py", line 1728, in set_label_position
assert position == 'top' or position == 'bottom'

AssertionError

我想问题出在matplotlib.colorbar.colorbase的方向部分。我一直在四处寻找,也许这可能是Pyhton问题的一个版本。我试图在方向的参数中加入垂直、v、h,而不是水平方向,但无论如何,什么也没有发生

此代码适用于我:

import matplotlib.pylab as plt
import matplotlib as mpl

min_val = -1
max_val = 1

redgreendict = {'red':[(0.0, 1.0, 1.0), (0.5, 1.0, 1.0) ,(1.0, 0.0, 0.0)],
                'green':[(0.0, 0.0, 0.0), (0.5, 1.0, 1.0), (1.0, 1.0, 1.0)],
                'blue':[(0.0, 0.2, 0.0), (0.5, 1.0, 1.0), (1.0, 0.2, 0.0)]}

cmap = mpl.colors.LinearSegmentedColormap('redgreen', redgreendict, 1000)
norm = mpl.colors.Normalize(min_val, max_val)

fig = plt.figure()
ax1 = fig.add_axes([0.05, 0.08, 0.9, 0.08])

cb1   = mpl.colorbar.ColorbarBase(ax1, cmap, norm=norm, orientation='horizontal')
结果是:


cb1=matplotlib.colorbar.colorbase(ax1,cmap,orientation='vertical')
cb1=matplotlib.colorbar.colorbase(ax1,cmap,orientation='horizontal')
为meI所做的工作确实解决了这个问题。问题是我需要在matplotlib.colorbar.colorbase中实现一个norm“norm=matplotlib.colors.Normalize(0,1)”。当你这么做的时候,每件事都会因为某些原因进展顺利。我也这么做了。当引入规范时,它工作得很好