Matplotlib

Matplotlib
Логотип программы Matplotlib
Скриншот программы Matplotlib
Пример работы matplotlib
Тип библиотека языка Python
Автор Джон Д. Хантер[вд][2]
Разработчик John Hunter
Написана на C++ и Python
Интерфейс GTK и Qt
Движки cairo и Anti-Grain Geometry[вд]
Операционная система кроссплатформенность
Первый выпуск 2003[1]
Аппаратная платформа Python
Последняя версия 3.5.2 (2 мая 2022)
Репозиторий github.com/matplotlib/ma…
Лицензия matplotlib licence
Сайт matplotlib.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе

Matplotlib — библиотека на языке программирования Python для визуализации данных двумерной и трёхмерной графикой. Получаемые изображения могут быть использованы в качестве иллюстраций в публикациях[3].

Matplotlib написан и поддерживался в основном Джоном Хантером (англ. John Hunter) и распространяется на условиях BSD-подобной лицензии. Генерируемые в различных форматах изображения могут быть использованы в интерактивной графике, в научных публикациях, графическом интерфейсе пользователя, веб-приложениях, где требуется построение диаграмм (англ. plotting)[4][5]. В документации автор признаётся, что Matplotlib начинался с подражания графическим командам MATLAB, но является независимым от него проектом[6].

Версия 2.1.1 — последняя стабильная — требует Python версии 2.7 или от 3.4 и выше и версию NumPy от 1.7.1 и выше[7].

Библиотека Matplotlib построена на принципах ООП, но имеет процедурный интерфейс pylab, который предоставляет аналоги команд MATLAB[8].

Возможности

Matplotlib является гибким, легко конфигурируемым пакетом, который вместе с NumPy, SciPy и IPython предоставляет возможности, подобные MATLAB. В настоящее время пакет работает с несколькими графическими библиотеками, включая wxWindows и PyGTK.

Пакет поддерживает многие виды графиков и диаграмм:

Пользователь может указать оси координат, решетку, добавить надписи и пояснения, использовать логарифмическую шкалу или полярные координаты[9].

Несложные трёхмерные графики можно строить с помощью набора инструментов (toolkit) mplot3d. Есть и другие наборы инструментов: для картографии, для работы с Excel, утилиты для GTK и другие[10].

С помощью Matplotlib можно делать и анимированные изображения[11].

Набор поддерживаемых форматов изображений, векторных и растровых, можно получить из словаря FigureCanvasBase.filetypes. Типичные поддерживаемые форматы:

Кроме того, на основе классов пакета можно создавать и другие модули. Например, для генерации искрографиков[12].

Пример

Следующий пример иллюстрирует построение графика[3]:

from pylab import *
plot(range(1, 20),
     [i * i for i in range(1, 20)], 'ro')
savefig('example.png')
show()

Результат работы примера в формате PNG:

Данный пример демонстрирует построение графика квадратичной функции на интервале от 1 до 20 и сохранение результата в векторном формате SVG:

from pylab import *
plot(range(1, 20),
     [i * i for i in range(1, 20)], 'ro')
savefig('example-svg-format.svg')
show()

Результат выполнения кода примера с использованием библиотеки matplotlib 3.5.2, сохраненный в векторном формате SVG:

Пример построения квадратичной функции в Matplotlib
Пример построения квадратичной функции в Matplotlib с отображением значений в виде точек, экспорт в векторный формат SVG. Использована версия библиотеки matplotlib 3.5.2, Python 3.11.4 в операционной системе Ubuntu 23.04

Галерея графиков

Примечания

  1. https://matplotlib.org/users/license.html#copyright-policy
  2. Hunter J. D. Matplotlib: A 2D Graphics Environment (англ.) // Computing in Science and EngineeringAIP Publishing, 2007. — Vol. 3, Iss. 1. — P. 766. — ISSN 1521-9615; 1558-366Xdoi:10.1109/MCSE.2007.55
  3. 1 2 Segaran, 2007.
  4. Tosi, 2009.
  5. Запись о matplotlib Архивная копия от 4 июля 2015 на Wayback Machine (англ.) на PyPI
  6. http://matplotlib.sourceforge.net/users/intro.html Архивная копия от 7 сентября 2012 на Wayback Machine Введение из документации по библиотеке
  7. Требования для инсталляции. Дата обращения: 4 января 2018. Архивировано 24 июня 2021 года.
  8. Экран помощи по пакету pylab можно интерактивно вызвать командами import pylab; help(pylab)
  9. Vaingast, 2009, pp. 183-220.
  10. mplot3d. Дата обращения: 24 июля 2012. Архивировано 7 сентября 2012 года.
  11. Animation API. Дата обращения: 24 июля 2012. Архивировано 2 июля 2012 года.
  12. Grig Gheorghiu. sparkplot: creating sparklines with matplotlib (англ.) (23 апреля 2005). Архивировано из оригинала 19 августа 2012 года.

Литература

  • Андреас Мюллер, Сара Гвидо. Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с данными = Introduction to Machine Learning with Python: A Guide for Data Scientists. — Вильямс, 2017. — 480 с. — ISBN 978-5-9908910-8-1, 978-1-449-36941-5.
  • Дж. Вандер Плас. Python для сложных задач. Наука о данных и машинное обучение = Python Data Science Handbook: Essential Tools for Working with Data. — Питер, 2017. — 576 с. — ISBN 978-5-496-03068-7.
  • Toby Segaran. Programming Collective Intelligence: Building Smart Web 2.0 Applications. — O'Reilly Media, Inc., 2007. — 308 с. — ISBN 9780596529321. Имеется перевод: Тоби Сегаран. Программируем коллективный разум. — Символ-Плюс, 2009. — 368 с. — ISBN 5-93286-119-3.
  • Sandro Tosi. Matplotlib for Python Developers. — Packt Publishing, 2009. — 308 с. — ISBN 978-1847197900.
  • Shai Vaingast. Beginning Python Visualization: Crafting Visual Transformation Scripts. — Springer, 2009. — 384 с. — ISBN 9781430218432.

Ссылки