Matplotlib

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

matplotlib
Логотип программы matplotlib
Скриншот программы matplotlib
Пример работы matplotlib
Тип библиотека языка Python
Автор Джон Д. Хантер[d][1]
Разработчик John Hunter
Написана на Python и C++
Интерфейс GTK и Qt
Операционная система кроссплатформенность
Первый выпуск 2003[2]
Аппаратная платформа Python
Последняя версия 3.3.4
Создаваемые форматы файлов PNG, SVG, Encapsulated PostScript и PDF
Лицензия matplotlib licence
Сайт matplotlib.org​ (англ.)
Логотип Викисклада Медиафайлы на Викискладе

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.

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

  • Графики (line plot)
  • Диаграммы разброса (scatter plot)
  • Столбчатые диаграммы (bar chart) и гистограммы (histogram)
  • Круговые диаграммы (pie chart)
  • Ствол-лист диаграммы (stem plot)
  • Контурные графики (contour plot)
  • Поля градиентов (quiver)
  • Спектральные диаграммы (spectrogram)

Пользователь может указать оси координат, решетку, добавить надписи и пояснения, использовать логарифмическую шкалу или полярные координаты[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. Iadanza M. G., Schiffrin B., White P., Watson M. A., Horne J. E., Higgins A. J., Calabrese A. N., Brockwell D. J., Tuma R., Kalli A. C. et al. Matplotlib: A 2D Graphics Environment (англ.) // Communications BiologyNPG, 2007. — Vol. 3, Iss. 1. — P. 766. — ISSN 2399-3642doi:10.1109/MCSE.2007.55
  2. https://matplotlib.org/users/license.html#copyright-policy
  3. 1 2 Segaran, 2007.
  4. Tosi, 2009.
  5. Запись о matplotlib (англ.) на PyPI
  6. http://matplotlib.sourceforge.net/users/intro.html Введение из документации по библиотеке
  7. Требования для инсталляции
  8. Экран помощи по пакету pylab можно интерактивно вызвать командами import pylab; help(pylab)
  9. Vaingast, 2009, pp. 183-220.
  10. mplot3d
  11. Animation API
  12. Grig Gheorghiu. sparkplot: creating sparklines with matplotlib (англ.) (недоступная ссылка) (23 April, 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.

СсылкиПравить