Лекция Основы алгоритмизации. Алгоритмы и величины. Этапы решения задачи на ЭВМ



бет30/37
Дата16.01.2022
өлшемі0,96 Mb.
#129365
түріЛекция
1   ...   26   27   28   29   30   31   32   33   ...   37
Байланысты:
Все лекции

«Фигуры» за кулисами


Каждый раз, когда вы вызываете plt.subplots(), или реже используемую plt.figure() (которая создает объект Figure без объектов Axes), вы создаете новый объект Figure, который matplotlib по хитрому хранит в памяти. Ранее, мы упоминали концепцию текущего объекта Figure и Axes. По умолчанию, такие объекты Figure и Axes создаются чаще всего, это мы можем продемонстрировать при помощи встроенной функции id(), чтобы показать адрес объекта в памяти:

Python




1

2

3



4

5

6



7

8

9



10

11

12



import matplotlib.pyplot as plt

 

fig1, ax1 = plt.subplots()



 

# fig1– это текущая фигура.

print(id(fig1)) # 4525567840

print(id(plt.gcf())) # 4525567840

 

# текущая фигура была изменена на fig2.



fig2, ax2 = plt.subplots()

 

print(id(fig2) == id(plt.gcf())) # True



(Мы также можем использовать встроенный оператор is в этом коде)

После показанной только что рутины, текущая фигура называется fig2, и является фигурой, которая создается чаще всего. Однако, обе фигуры висят в памяти, и обе носят соответствующий номер ID (с одним индексом, в духе MATLAB):

Python



1

print(plt.get_fignums()) # [1, 2]

Python



1

2

3



4

def get_all_figures():

    return [plt.figure(i) for i in plt.get_fignums()]

 

print(get_all_figures())



Результат:

Python




1

2


[,

]



Достарыңызбен бөлісу:
1   ...   26   27   28   29   30   31   32   33   ...   37




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет