Похоже, вы передали не тот объект в конструктор цветовых панелей.
Это должно работать:
# make namespace explicit
from matplotlib import pyplot as PLT
cbar = fig.colorbar(result)
Приведенный выше фрагмент кода основан на коде в вашем ответе; вот полный, автономный пример:
import numpy as NP
from matplotlib import pyplot as PLT
A = NP.random.random_integers(0, 10, 100).reshape(10, 10)
fig = PLT.figure()
ax1 = fig.add_subplot(111)
cax = ax1.imshow(A, interpolation="nearest")
# set the tickmarks *if* you want cutom (ie, arbitrary) tick labels:
cbar = fig.colorbar(cax, ticks=[0, 5, 10])
# note: 'ax' is not the same as the 'axis' instance created by calling 'add_subplot'
# the latter instance i bound to the variable 'ax1' to avoid confusing the two
cbar.ax.set_yticklabels(["lo", "med", "hi"])
PLT.show()
Как я и предлагал в комментарии выше, я бы выбрал чистое пространство имен , что у вас есть - например, есть модули с одинаковым именем в NumPy и Matplotlib.
В частности, я использовал бы этот оператор импорта для импорта «основных» функций построения графиков Matplotlib:
from matplotlib import pyplot as PLT
Конечно, это не дает всего пространства имен matplotlib (что действительно является точкой этого оператора импорта), хотя обычно это все, что вам нужно.