擅长:python、mysql、java
<p>看起来您将错误的对象传递给了colorbar构造函数。</p>
<p>这应该有效:</p>
<pre><code># make namespace explicit
from matplotlib import pyplot as PLT
cbar = fig.colorbar(result)
</code></pre>
<p>上面的代码片段基于您的答案中的代码;下面是一个完整的独立示例:</p>
<pre><code>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()
</code></pre>
<p>正如我在上面的注释中所建议的,我将选择一个<em>更干净的名称空间</em>来说明您所拥有的——例如,在NumPy和Matplotlib中都有同名的模块。</p>
<p>特别是,我将使用这个import语句导入Matplotlib的“核心”绘图功能:</p>
<pre><code>from matplotlib import pyplot as PLT
</code></pre>
<p>当然,这并不能得到整个matplotlib名称空间(这实际上是import语句的重点),尽管这通常是您所需要的全部。</p>