matplotlib
matplotlib — бібліотека на мові програмування Python для візуалізації даних двовимірною 2D графікою (3D графіка також підтримується). Отримувані зображення можуть бути використані як ілюстрації в публікаціях[3].
| |
Приклад роботи matplotlib | |
Тип | бібліотека мови Python |
---|---|
Автор(и) | John D. Hunterd[1] |
Розробник | Джон Хантер |
Стабільний випуск | 1.5.1 (11 січня, 2016 ) |
Версії | 3.5.0 (16 листопада 2021)[2] |
Репозиторій | github.com/matplotlib/matplotlib |
Платформа | Python |
Операційна система | крос-платформова |
GNU фреймворк | GTK і Qt |
Мова програмування | C++ і Python |
Ліцензія | matplotlib licence |
Онлайн-документація | matplotlib.org/stable/contents.html |
Вебсайт | matplotlib.org |
matplotlib у Вікісховищі |
matplotlib написана і підтримується в основному Джоном Хантером і поширюється на умовах BSD-подібної ліцензії. Зображення, які генеруються в різних форматах, можуть бути використані в інтерактивній графіці, наукових публікаціях, графічному інтерфейсі користувача, веб-додатках, де потрібно будувати діаграми (англ. plotting)[4][5]. В документації автор зізнається, що Matplotlib починався з імітування графічних команд MATLAB, але є незалежним від нього проектом[6].
Версія 1.2.0 — остання стабільна — потребує Python версії від 2.6 і вище і версію NumPy від 1.4 і вище[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
. Типові підтримувані формати:
- Encapsulated PostScript (EPS)
- Enhanced Metafile (EMF)
- JPEG
- PNG
- PostScript
- RGBA («сирий» формат)
- SVG
- SVGZ
- TIFF
Крім того, на основі класів пакету можна створювати й інші модулі. Наприклад, для генерування спарклайнів[12].
Порівняння з MATLAB
Інтерфейс pylab дозволяє легко використовувати matplotlib досвідченими користувачами MATLAB.
Нижче наведені деякі переваги використання matplotlib, як аналогу MATLAB:
- вбудована підтримка SVG;
- є відкритим програмним забезпеченням;
- безкоштовний.
Приклад
Наступний приклад ілюструє побудову графіка[3]:
from pylab import *
plot(range(1, 20),
[i * i for i in range(1, 20)], 'ro')
savefig('example.png')
show()
Галерея графіків
- Функція Розенброка
- Квазідворічні коливання
Див. також
Примітки
- Calabrese A. N., Brockwell D. J., Tuma R. et al. Matplotlib: A 2D Graphics Environment // Communications Biology — NPG, 2007. — Vol. 3, Iss. 1. — P. 766. — ISSN 2399-3642 — doi:10.1109/MCSE.2007.55
- Release 3.5.0
- Segaran, 2007.
- Tosi, 2009.
- Запис про matplotlib(англ.) на PyPI
- http://matplotlib.sourceforge.net/users/intro.html Вступ з документації по бібліотеці
- Вимоги для інсталяції
- Екран допомоги по пакету pylab можна інтерактивно викликати командами
import pylab; help(pylab)
- Vaingast, 2009, с. 183-220.
- mplot3d
- Animation API
- Grig Gheorghiu (23 April, 2005). sparkplot: creating sparklines with matplotlib. Архів оригіналу за 19 серпня 2012. Процитовано 31 липня 2015.
Література
- 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.