Когда я запускаю этот код
from pylab import *
figure()
ax1 = subplot(121)
plot([1, 2, 3], [1, 2, 3])
subplot(122, sharex=ax1, sharey=ax1)
plot([1, 2, 3], [1, 2, 3])
draw()
show()
Я получаю две подзаголовки, которые "хлюпаются" в X-размерности. Как получить эти подзаговоры так, чтобы высота оси Y была равна ширине оси X для обеих подзадач?
Я использую matplotlib v.0.99.1.2 на Ubuntu 10.04.
Обновление 2010-07-08. Посмотрите на некоторые вещи, которые не работают.
После Googling в течение всего дня я подумал, что это может быть связано с автоматическим масштабированием. Поэтому я попытался поиграть с этим.
from pylab import *
figure()
ax1 = subplot(121, autoscale_on=False)
plot([1, 2, 3], [1, 2, 3])
subplot(122, sharex=ax1, sharey=ax1)
plot([1, 2, 3], [1, 2, 3])
draw()
show()
matplotlib настаивает на автоматическом масштабировании.
from pylab import *
figure()
ax1 = subplot(121, autoscale_on=False)
plot([1, 2, 3], [1, 2, 3])
subplot(122, sharex=ax1, sharey=ax1, autoscale_on=False)
plot([1, 2, 3], [1, 2, 3])
draw()
show()
В этом случае данные полностью исчезают. WTF, matplotlib? Просто WTF?
Хорошо, возможно, если мы зафиксируем соотношение сторон?
from pylab import *
figure()
ax1 = subplot(121, autoscale_on=False)
plot([1, 2, 3], [1, 2, 3])
axes().set_aspect('equal')
subplot(122, sharex=ax1, sharey=ax1)
plot([1, 2, 3], [1, 2, 3])
draw()
show()
Это приводит к тому, что первый подзаговор полностью исчезает. Это весело! Кто придумал этот?
Со всей серьезностью, теперь... должно ли это действительно быть таким трудным делом?