Ну, это, вероятно, не совсем то, что вы хотите, но это сработает:
from numpy.random import rand
import matplotlib.pyplot as plt
plt.figure()
# first subplot
s1 = plt.subplot(2, 2, 2)
plt.bar([1, 2, 3], [4, 5, 6])
# second subplot
s2 = plt.subplot(2, 2, 4)
plt.pcolor(rand(5,5))
# square axes
axes_square(s1)
axes_square(s2)
s_fake = plt.subplot(2, 2, 3)
s_fake.set_axis_off()
# add colorbar
plt.colorbar()
Он просто создает ложную пару ячеек слева и ничего в них не отображает,Не красиво, но это работает.;)
Кроме того, я предполагаю, что эти два импорта были неявными в вашем коде ...