Когда я запускаю этот код
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 : Давайте посмотрим на некоторые вещи, которые не работают.
После того, как весь день гуглил, я подумал, что это может быть связано с автоматическим масштабированием,Поэтому я попытался поиграться с этим.
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, матплотлиб?Просто 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()
Это приводит к тому, что первый субплот полностью исчезает.Это весело!Кто придумал это?
На полном серьезе, теперь ... разве это действительно трудно сделать?