matplotlib: ограничения при использовании plot и imshow в одних и тех же осях

Я пытался построить эллипс в графике imshow . Это работает, но построение эллипса после построения изображения, кажется, увеличивает xlim и ylim, в результате чего образуется граница, от которой я бы хотел избавиться:

Обратите внимание, что НЕТ белой границы сразу после вызова imshow only.

Мой код выглядит следующим образом:

self.dpi = 100
self.fig = Figure((6.0, 6.0), dpi=self.dpi)
self.canvas = FigureCanvas(self.fig)
self.canvas.setMinimumSize(800, 400)
self.cax = None
self.axes = self.fig.add_subplot(111)
self.axes.imshow(channel1, interpolation="nearest")
self.canvas.draw()
self.axes.plot(dat[0], dat[1], "b-")

Я пытался установить пределы до и после вызова "plot", но безрезультатно

# get limits after calling imshow
xlim, ylim = pylab.xlim(), pylab.ylim()
...
# set limits before/after calling plot
self.axes.set_xlim(xlim)
self.axes.set_ylim(ylim)

Как я могу заставить график не увеличивать существующие ограничения на число?

Решение ( спасибо Джо):

#for newer matplotlib versions
self.axes.imshow(channel1, interpolation="nearest")
self.axes.autoscale(False)
self.axes.plot(dat[0], dat[1], "b-")

#for older matplotlib versions (worked for me using 0.99.1.1)
self.axes.imshow(channel1, interpolation="nearest")
self.axes.plot(dat[0], dat[1], "b-", scalex=False, scaley=False)
22
задан Falko 20 April 2016 в 09:17
поделиться