Python 丢失最后一个colormap子批次matplotlib中的边值

Python 丢失最后一个colormap子批次matplotlib中的边值,python,matplotlib,Python,Matplotlib,我正在使用python 3.5.2和matplotlib 1.5.3 我正在做一些y轴共享的彩色贴图。 问题是,当将颜色条放置在最后一个子批次中时,我丢失了x轴上的第一个和最后一个记号。但如果放大图形(例如figsize=(12,3)),则在另一个子地块的边缘会出现一些空白 import numpy as np import matplotlib.pyplot as plt matrix = np.random.random((10, 10, 3)) fig = plt.figure(figs

我正在使用python 3.5.2和matplotlib 1.5.3

我正在做一些y轴共享的彩色贴图。 问题是,当将颜色条放置在最后一个子批次中时,我丢失了x轴上的第一个和最后一个记号。但如果放大图形(例如figsize=(12,3)),则在另一个子地块的边缘会出现一些空白

import numpy as np
import matplotlib.pyplot as plt

matrix = np.random.random((10, 10, 3))
fig = plt.figure(figsize=(10, 3)) # Try a figsize=(12, 3)

for i in range(3):
    if i == 0:
        ay1 = plt.subplot(1, 3, i+1)
    else:
        plt.subplot(1, 3, i+1, sharey=ay1)
    plt.imshow(matrix[:, :, i], interpolation='nearest')
    if i == 2:
        plt.colorbar()
plt.show()

正确的方法是什么?

只有在使用不同大小的图像时,使用
sharey
才有意义。但是,当图像大小不同时,在人物的某些部分,没有任何东西会被涂成白色

另一方面,如果您的图片大小与此处相同,则无需使用
shary
。在这种情况下,您可以简单地绘制数据并添加颜色条

import numpy as np
import matplotlib.pyplot as plt

matrix = np.random.random((10, 10, 3))

fig, ax = plt.subplots(1,3, figsize=(12, 3))
plt.subplots_adjust(left=0.05, right=0.85)
for i in range(3):
    im = ax[i].imshow(matrix[:, :, i], interpolation='nearest')
    ax[i].set_aspect("equal")

plt.draw()
p = ax[-1].get_position().get_points().flatten()
ax_cbar = fig.add_axes([0.9,p[1], 0.02, p[3]-p[1]] )
plt.colorbar(im, cax=ax_cbar)

plt.show()