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


Структурированные и неструктурированные подходы



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

    Бұл бет үшін навигация:
  • MATLAB

Структурированные и неструктурированные подходы


Что-ж, сейчас нам необходим еще один кусок теории, перед тем как мы приступим к созданию различных визуализаций – разница между структурированными (ориентированными на структуру) и неструктурированными (ориентированными на объект) интерфейсами.

Ранее, мы использовали import matplotlib.pyplot as plt для импорта модуля pyplot из matplotlib и назвали его plt.

Практически все функции pyplot, такие как plt.plot(), так или иначе, ссылаются на нынешний существующий объект Figure и нынешний объект Axes, или создают их, если какой-либо из них не существует. Рассмотрим полезный фрагмент, скрытый в документации matplotlib:

[pyplot], простые функции используются для добавления элементов графика (линии, изображения, текста, и т.д.) в текущие оси в нашей фигуре.

Хардкорные бывшие пользователи MATLAB могут определить это как: «plt.plot() — это интерфейс структурной машины, который неявно отслеживает текущую фигуру!». По-русски это будет звучать так:


  • Структурный интерфейс делает свои вызовы с plt.plot() и другими высшими функциями pyplot. Существует только один объект Figure или Axes, который вы используете за данное время, и вам не нужна явная ссылка на этот объект;

  • Модификация изложенных ниже объектов напрямую – это объектно-ориентированный подход. Обычно, мы делаем это, вызывая методы объекта Axes, который является объектом, который отображает целостный график.

Поток этих процессов на высшем уровне выглядит следующим образом:

Связав все это в месте, большая часть функций из pyplot также существует в качестве методов класса matplotlib.axes.Axes.

Для простоты понимания, мы можем взглянуть под капот. plt.plot() может быть сокращен до пяти строк кода:

 

matplotlib/pyplot.py



Python



1

2

3



4

5

6



7

8


def plot(*args, **kwargs):

    """An abridged version of plt.plot()."""

    ax = plt.gca()

    return ax.plot(*args, **kwargs)

 

def gca(**kwargs):



    """Get the current Axes of the current Figure."""

    return plt.gcf().gca(**kwargs)



И это все. Вызов plt.plot() – это удобный способ получения текущего объекта Axes текущего объекта Figure и вызвать его метод plot(). Это тот случай, когда утверждается, что структурированный интерфейс всегда «неявно отслеживает» график, на который он хочет ссылаться.



Достарыңызбен бөлісу:
1   ...   22   23   24   25   26   27   28   29   ...   37




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

    Басты бет