Matplotlib: як встановити поточну цифру?


83

Це, сподіваюся, просте запитання, але наразі я не можу це зрозуміти. Я хочу використовувати 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), набагато приємніше)

Відповіді:


93

Ви можете просто встановити цифру 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().


1
Чи є хороший спосіб зробити це, використовуючи matplotlib.figure.Figure замість pylab ??
tylerthemiler

@tylerthemiler: Так, але це було б matplotlib.pyplot.figure().
Eric O Lebigot

Якщо ви хочете зробити те саме з осями, просто використовуйте pylab.sca(my_axis)("встановити поточну вісь").
PiHalbe

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.