Справочник от Автор24
Поделись лекцией за скидку на Автор24

Построение графиков

  • 👀 351 просмотр
  • 📌 284 загрузки
Выбери формат для чтения
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Построение графиков» docx
Построение графиков Наиболее распространенной библиотекой для построения 2D и 3D графиков является MatPlotLib (читается как мат-плот-либ). Данная библиотека позволяет процесс построения графиков как с использованием объектно-ориентированного, так и функционального подходов. Функциональный подход является наиболее простым и подходит для большинства задач, при желании достичь более точного контроля и расширенного функционала можно воспользоваться объектно-ориентированной реализацией. Использование MatPlotLib в Jupyter обладает некоторой спецификой в связи с тем, что результирующие графики выводятся в виде статичных изображений, в отличии от запуска скриптов (файлов с разрешением .py), где графики выводятся в отдельных окнах с возможностью интерактивного взаимодействия с ними. Основным подмодулем в matplotlib является pyplot, который предоставляет основные функции для построения графиков. Общепринятым является импорт образом, представленным на рис. 1. Рис. 1. Функциональный подход На первой строчке осуществляется импорт pyplot с алиасом plt, а на второй самого модуля matplotlib с алиасом mpl. Функциональный подход построения графиков с MatPlotLib, по своей сути, напоминает подход, реализованный в MATLAB. Модуль хранит промежуточные состояния фигур и все описанные изменения реализуются относительно последней объявленной фигуры. Для начала рассмотрим простейший пример построения графика синусоиды (Рис. 2.). Функция plot отвечает за построение графика, а функция show - за его отображение. Рис. 2. График синусоиды Существует несколько вариантов использования функции plot, в общем виде ее сигнатура выглядит следующим образом: plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs) По сигнатуре видно, что функция plot может принимать несколько наборов данных одновременно, кроме того, при условии, что данные разделяются форматами (параметры fmt, fmt2 и тд.) можно не указывать независимую переменную, при этом ей будет автоматически назначен массив [0, 1, ..., n], где n - это количество элементов в массиве зависимой переменной. Формат указывается как строка, содержащая определенный набор символов, который отвечает за стиль отображения данных и записывается в следующем порядке: 1. Маркер 2. Линия 3. Цвет Возможные варианты всех указателей формата представлены в таблицах 1-3. Таблица 1 Таблица 2 Таблица 3 Например, для того чтобы построить голубую пунктирную линию с кружками в ключевых точках следует использовать формат "o:b". Пример графика полученного с использованием функции plot в различных вариантах представлен на рисунке 3. Рис. 3. График с различными стилями линий Кроме функции plot, позволяющей решать большинство простых задач, существуют также и более специфичные функции. Список некоторых видов графиков представлен в таблице 4. Таблица 4 Функция Описание semilogx(*args, **kwargs). График с логарифмической шкалой абсцисс. Параметры аналогичны функции plot. semilogy(*args, **kwargs) График с логарифмической шкалой ординат. Параметры аналогичны функции plot. loglog(*args, **kwargs) График с логарифмической шкалой абсцисс и ординат. Параметры аналогичны функции plot. scatter(x, y, **kwargs) Диаграмма рассеяния bar(x, height, **kwargs) Столбчатая диаграмма barh(x, width, **kwargs) Горизонтальная столбчатая диаграмма. stem([x,] y, **kwargs) График дискретного ряда (stem-график) pie(x, **kwargs) Круговая диаграмма hist(x[, bins], **kwargs) Гистограмма. streamplot(x, y, u, v, **kwargs) Векторная диаграмма потоков vlines(x, ymin, ymax, **kwargs) Вертикальные линии. imshow(X, **kwargs) Отобразить данные как 2D изображение. Для изменения характеристик фигуры, таких как подписи осей или легенда, предусмотрены контролирующие функции (Таблица 5). Таблица 5 В качестве примера рассмотрим исходный код для создания графика (рис. 4 и рис. 5.), реализующий большую часть описанного функционала. Рис. 4. Исходный код для построения сложного графика Рис. 5 Результат выполнения кода рис. 4 Объектно-ориентированный подход является несколько более сложным в реализации по сравнению с функциональным подходом, однако позволяет достичь большего контроля над графиками. Основное отличие данной реализации заключается в том, что все взаимодействия происходят непосредственно с объектами фигур или графиков (осей) с помощью их полей и методов. Практически все функции, представленные в таблицах 4 и 5, возвращают объект, который представляет собой внесенные изменения и реализует методы дальнейшего взаимодействия с ним с использованием ООП. Например, при вызове функции plot будет возвращаться объект matplotlib.lines.Line2D, а при вызове функции figure - matplotlib.figure.Figure. В связи с этим функциональный подход может быть переквалифицирован в объектно-ориентированный в практически любой момент. Однако существуют функции, которые непосредственно предназначены для использования с ООП (Таблица 6). Таблица 6. Основными классами являются matplotlib.figure.Figure и matplotlib.axes.Axes, и большинство манипуляций осуществляется с их экземплярами. Для примера реализуем представленный на рисунке 6 график с применением ООП: Рис. 6. Исходный код для построения графика с объектно-ориентированным подходом Отличительной особенностью трехмерных графиков является необходимость использования ООП при их построении, поэтому вместо функций для построения используются методы класса Axes3D. Наиболее часто используемые типы трехмерных графиков представлены в таблице 7. Таблица 7 Метод Описание scatter(xs, ys[, zs], **kwargs) Трехмерная диаграмма рассеяния. plot_wireframe(X, Y, Z, *args, **kwargs) График поверхности в виде сетки. plot_surface(X, Y, Z, *args, **kwargs) График поверхности Примеры построения графиков из таблицы 7 представлены на рис. 7 и 8. Рис. 7. Исходный код для построения трехмерного графика Рис. 8 Результат выполнения кода рис. 7
«Построение графиков» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Тебе могут подойти лекции

Смотреть все 588 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot