Text in Matplotlib Plots#
Introduction to plotting and working with text in Matplotlib.
Matplotlib has extensive text support, including support for mathematical expressions, truetype support for raster and vector outputs, newline separated text with arbitrary rotations, and Unicode support.
Because it embeds fonts directly in output documents, e.g., for postscript or PDF, what you see on the screen is what you get in the hardcopy. FreeType support produces very nice, antialiased fonts, that look good even at small raster sizes. Matplotlib includes its own matplotlib.font_manager (thanks to Paul Barrett), which implements a cross platform, W3C compliant font finding algorithm.
The user has a great deal of control over text properties (font size, font weight, text location and color, etc.) with sensible defaults set in the rc file . And significantly, for those interested in mathematical or scientific figures, Matplotlib implements a large number of TeX math symbols and commands, supporting mathematical expressions anywhere in your figure.
Basic text commands#
The following commands are used to create text in the implicit and explicit interfaces (see Matplotlib Application Interfaces (APIs) for an explanation of the tradeoffs):
Как подписать оси на графике в Matplotlib Pyplot
Подскажите пожалуйста как подписать оси на графике построенном в библиотеке Matplotlib pyplot если оси выровнены по центру. Вот мой код:
Попробуйте добавить labelpad
А случайно не знаете, игрек можно перевернуть или тут уже всё?
Попробуйте добавить rotation
Вы можете вручную располагать маркеры осей, принимая во внимание, что для маркеров начало координат находится в левом нижнем углу и позиция измеряется в долях от единицы:
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.13.43310
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Визуализация данных в Matplotlib
Matplotlib — библиотека на языке программирования Python для визуализации данных двумерной (2D) графикой (3D графика также поддерживается). Получаемые изображения могут быть использованы в качестве иллюстраций в публикациях[4].
Matplotlib написан и поддерживался в основном Джоном Хантером (англ. John Hunter) и распространяется на условиях BSD-подобной лицензии. Генерируемые в различных форматах изображения могут быть использованы в интерактивной графике, в научных публикациях, графическом интерфейсе пользователя, веб-приложениях, где требуется построение диаграмм (англ. plotting)[5][6]. В документации автор признаётся, что Matplotlib начинался с подражания графическим командам MATLAB, но является независимым от него проектом
Установка
Для установки используйте пакетный менеджер:
Импорт
Для отображения графиков в notebook’е введите
Благодаря этой строчке все графики будут выводиться в векторном формате svg:
Для отображения графиков в отрыве от jupyter notebook используйте plt.show() после всех команд для вывода графиков.
API matplotlib в функциональном стиле
Example
В отличии от pandas, matplotlib может строить графики из обычных списков или массивов numpy.
12.1. Теория¶
Текст является одним из лучших способов передачи информации, однако, в ряде случаев, как гласит известная поговорка, «лучше один раз увидеть, чем сто раз услышать».
В Python визуализация данных легко осуществляется с использованием сторонних пакетов, среди которых одним из наиболее известных является библиотека matplotlib.
12.1.1. Описание и установка¶
Matplotlib распространяется на условиях BSD-подобной лицензии. Библиотека поддерживает двумерную (2D) и трехмерную (3D) графику, а также анимированные рисунки.
Создаваемые изображения могут быть использованы в мультимедийных приложениях, научных проектах, а также различных документах, публикациях и веб-приложениях. Исторически библиотека формировалась под влиянием математического пакета Matlab, но являлась и является независимым от него проектом. Построенная на принципах ООП, библиотека также имеет процедурный интерфейс pylab, который предоставляет аналоги команд Matlab.
Последняя стабильная версия библиотеки поддерживает Python 2.6 и выше. В курсе рассматривается matplotlib версии 2+.
Пакет поддерживает многие виды диаграмм:
столбчатые диаграммы и гистограммы;
При построении возможно указать оси координат, сетку, добавить аннотации, использовать логарифмическую шкалу или полярные координаты. Созданные изображения могут быть легко сохранены, в частности, в популярные форматы (JPEG, PNG и др.).
Пример изображений приведен на Рисунке 12.1.1.
Рисунок 12.1.1 — Пример изображений, построенных с использованием matplotlib 10 ¶
На странице скриншотов, а также в демонстрационной галерее библиотеки приведен обширный список примеров, включающих изображения и соответствующий код.
Как и любой пакет matplotlib можно установить, используя утилиту pip:
Пользователям ОС на базе Linux можно воспользоваться пакетным менеджером и установить python3-matplotlib.
После установки проверьте, что библиотека имеет версию 3 и выше:
Дополнительная информация об установке находится в официальном руководстве по инсталляции.
12.1.2. Основы matplotlib¶
В matplotlib все объекты организованы в единую иерархию:
На вершине иерархии находится конечный автомат (модель, число возможных внутренних состояний которой конечно), предоставляемый модулем matplotlib.pyplot . На данном уровне все функции, используемые для рисования диаграмм (линии, рисунки, текст и т.д.) применяются к текущему изображению.
На уровне ниже располагается объектно-ориентированный интерфейс, используемый для создания изображений, где объектами являются само изображение, оси координат, графические примитивы и т.д.
12.1.2.1. Типы используемых величин¶
Все функции построения диаграмм ожидают аргументы следующих типов:
— набор или массив значений из пакета NumPy (устанавливается вместе с matplotlib), однако стандартные последовательности Python также допускаются к использованию.
NumPy — фундаментальный пакет для научных вычислений на Python, который содержит:
мощный объект — многомерный массив (в т.ч. матрицы);
высокоуровневые функции для работы с массивами, линейной алгеброй и а также быстрого создания набора данных (примерный аналог — функция range() );
инструменты для интеграции кода на C/C++ и Fortran.
Пакет NumPy не рассматривается отдельно в данном курсе.
12.1.2.2. Основные модули и классы matplotlib¶
12.1.2.2.1. Модуль matplotlib ¶
Модуль верхнего уровня matplotlib содержит функции для конфигурации библиотеки.
matplotlib. rc ( group , ** kwargs ) ¶
Устанавливает параметры **kwargs для группы объектов group (например, "font" для шрифта).
Данная функция может оказаться полезной, если шрифт в ОС по умолчанию не поддерживает кириллицу:
12.1.2.2.2. Элементы изображения¶
На Рисунке 12.1.2 представлены основные элементы изображения.
Рисунок 12.1.2 — Основные элементы изображения в matplotlib ¶
Изображение может содержать несколько диаграмм, каждая из которых будет представлять собой Рисунок 12.1.2.
Все элементы изображения унаследованы от класса Artists (модуль artist) и делятся на 2 типа:
Стандартные графические объекты на изображении: линия (класс Line2D), прямоугольник (класс Rectangle), текст (класс Text) и т.д.
Контейнеры — объекты, внутри которых размещаются примитивы: координатная плоскость (класс Axes), оси (класс Axis) или изображение (класс Figure).
12.1.3. Создание изображений¶
12.1.3.1. Построение простой диаграммы¶
Типичный ход построения изображения, как правило, включает следующие шаги:
Создать объект Figure .
Используя объект Figure , добавить координатную плоскость Axes (одну или несколько).
Используя методы Axes , добавить на изображение графические примитивы.
Отобразить и/или сохранить изображение.
Пример построения изображения приведен в Листинге 12.1.1.
Одним из способом создания изображения и координатной оси является функция pyplot.subplots().
matplotlib.pyplot. subplots ( nrows = 1 , ncols = 1 , sharex = False , sharey = False , squeeze = True , subplot_kw = None , gridspec_kw = None , ** fig_kw ) ¶
nrows (int) – количество координатных плоскостей по вертикали;
ncols (int) – количество координатных плоскостей по горизонтали;
является ли ось OX общей для нескольких плоскостей:
True или "all" : оси OX и OY будут общими для всех координатных плоскостей;
False или "none" : оси OX и OY будут отдельными для каждой координатной плоскости;
"row" : оси OX и OY будут общими для всех координатных плоскостей по вертикали;
"col" : оси OX и OY будут общими для всех координатных плоскостей по горизонтали.
sharey (bool или <"none", "all", "row", "col">) – является ли ось OY общей для нескольких плоскостей (аналогично параметру „sharex“);
fig: изображение (класс Figure);
ax: одна или несколько координатных плоскостей (класс Axes).
Для вывода полученного изображения на экран используется функция pyplot.show().
matplotlib.pyplot. show ( * args , ** kw ) ¶
Выводит изображение на экран в отдельном окне (Рисунок 12.1.3).
Рисунок 12.1.3 — Выполнение кода из Листинга 12.1.1. ¶
Кроме диаграммы графическое окно содержит специальные функциональные кнопки (интерактивную навигацию, пронумерована на Рисунке 12.1.3), их назначение и возможности приведены в Таблице 12.1.1.