Matplotlib: как установить текущую цифру?


это, надеюсь, простой вопрос, но я не могу понять это на данный момент. Я хочу использовать matplotlib, чтобы показать 2 цифры, а затем использовать их в интерактивном режиме. Я создаю фигуры с помощью:

import matplotlib
import pylab as pl

f1 = pl.figure()
f2 = pl.figure()

и может использовать MATLAB-подобный интерфейс pyplot для построения и рисования на обоих рисунках. С

current_figure = pl.gcf()

Я могу определить текущую активную фигуру для интерфейса pyplot, в зависимости от того, какую фигуру я нажал. Теперь я хочу нарисовать что-то на первой фигуре с помощью интерфейс pyplot но нынешняя цифра может быть любой из них. Так что есть что-то вроде

pl.set_current_figure(figure)

или любой обходной путь? (Я знаю, что могу использовать объектно-ориентированный интерфейс, но для интерактивных вещей просто использовать команды, такие как plot(x, y), намного лучше)

2 65

2 ответа:

вы можете просто установить рисунок f1 как новая текущая цифра с:

pl.figure(f1.number)

другой вариант-дать имена (или числа) фигурам, которые могут помочь сделать код более легким для чтения:

pl.figure("Share values")
# ... some plots ...
pl.figure("Profits")
# ... some plots ...

pl.figure("Share values")  # Selects the first figure again

фактически, цифра "числа" может быть строками, которые, возможно, более явны, чем простые числа.

PS: эквивалент pyplot pylab.figure() - это matplotlib.pyplot.figure().

дайте каждой цифре число:

f1 = pl.figure(1)
f2 = pl.figure(2)
# use f2
pl.figure(1) # make f1 active again