Подтвердить что ты не робот

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), намного приятнее)

4b9b3361

Ответ 1

Вы можете просто установить цифру 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: эквивалент пистолета pylab.figure() равен matplotlib.pyplot.figure().

Ответ 2

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

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