Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Библиотека matplotlib

Глава 11 из книги "Архитектура приложений с открытым исходным кодом", том 2.

Оригинал: matplotlib
Автор: John Hunter, Michael Droettboom, перевод: А.Панин

11.6. Математические выражения

Так как пользователями библиотеки matplotlib обычно являются ученые, очень полезно иметь возможность вывода отформатированного текста, содержащего математические выражения, прямо на графике. Скорее всего, самым широко используемым синтаксисом для формирования математических выражений является синтаксис, используемый созданной Donald Knuth системой TeX. Он позволяет использовать входные данные в форме обычной текстовой строки, подобной следующей:
\sqrt{\frac{\delta x}{\delta y}}

и формировать на основе нее отформатированное математическое выражение.

Библиотека matplotlib предоставляет два варианта вывода математических выражений. Первый вариант, usetex, использует полную копию системы TeX на пользовательской машине для вывода математического выражения. Система TeX выводит данные о расположении символов и линий для формирования выражения в используемом формате DVI (независимом от устройства). После этого matplotlib разбирает этот файл DVI и преобразует его в набор команд рисования, с помощью которых одна из систем вывода данных сможет нанести выражение непосредственно на график. Этот подход позволяет обрабатывать самый запутанный синтаксис математических выражений. Однако, он требует от пользователя наличия полной установленной рабочей копии системы TeX. Поэтому библиотека содержит также внутреннюю систему вывода математических выражений, называемую mathtext.

Система mathtext является прямым портом системы вывода математических выражений из TeX, объединенным с более простой системой разбора текста, разработанной с использованием фреймворка для разбора текста pyparsing [McG07]. Этот порт был создан на основе опубликованной копии исходного кода TeX [Knu86]. Эта простая система разбора текста создает дерево из контейнеров (boxes) и связей (glue в терминологии TeX), которое после этого используется системой вывода данных. Хотя полная версия системы вывода математических выражений TeX и включается в комплект поставки, большой набор сторонних математических библиотек TeX и LaTeX из него исключается. Возможности этих библиотек переносятся в случае необходимости, с преимуществом для часто используемых и не являющихся специфичными для какой-либо области науки возможностей. Этот подход позволяет создать замечательный и не ресурсоемкий способ вывода математических выражений.


Далее: Тестирование с целью поиска регрессий