У меня есть несколько строк, которые нужно нарисовать на тех же осях, и каждый из них динамически обновляется (я использую set_data). Проблема заключается в том, что я не знаю границ x и y каждой из строк. И axes.autoscale_view (True, True, True)/axes.set_autoscale_on (True) не делают то, что они предполагают. Как автоматически масштабировать оси?
import matplotlib.pyplot as plt
fig = plt.figure()
axes = fig.add_subplot(111)
axes.set_autoscale_on(True)
axes.autoscale_view(True,True,True)
l1, = axes.plot([0,0.1,0.2],[1,1.1,1.2])
l2, = axes.plot([0,0.1,0.2],[-0.1,0,0.1])
#plt.show() #shows the auto scaled.
l2.set_data([0,0.1,0.2],[-1,-0.9,-0.8])
#axes.set_ylim([-2,2]) #this works, but i cannot afford to do this.
plt.draw()
plt.show() #does not show auto scaled
Я уже упоминал об этом, this, this. Во всех случаях, с которыми я столкнулся, известны пределы х, у. У меня есть несколько линий по осям и их диапазоны меняются, отслеживание ymax для всех данных непрактично.
Немного изучив, я добрался до этого,
xmin,xmax,ymin,ymax = matplotlib.figure.FigureImage.get_extent(FigureImage)
Но и здесь я не знаю, как получить доступ к элементу рисунка из экземпляра Figure.
Использование matplotlib 0.99.3