Программы для построения графиков и диаграмм
При необходимости построения цифровых графиков и/или диаграмм многие пользователи обращаются к стандартным инструментам офисных редакторов, как Microsoft Excel или даже Microsoft Word. Но для этих целей удобней использовать специализированные программы, обладающие более широкими возможностями.
Advanced Grapher
Advanced Grapher — небольшое и одновременно мощное приложение для построения графиков. Используется для построения графиков уравнений, неравенств и таблиц. Также программа позволяет выполнять подгонку кривой, анализировать функции, находить пересечения графиков, выполнять численное интегрирование и многое другое.
В общей сложности программа Advanced Grapher позволяет строить 7 различных типов графиков, к которым относятся:
- Графики функций (X/Y-графики).
- Графики таблиц (основанные на данных в таблицах).
- Графики функций в полярных координатах (R (a)).
- Графики параметрических функций/уравнений (X (t) и Y (t) — 3);
- Графики уравнений (f (x, y) = 0).
- Графики неравенств (f (x, y) <0 и f (x, y)> 0).
- Поля уклона (dx/dy(x,y)).
Для каждого графика можно указать цвет, стиль и ширину линий, стиль и размер точек, тип построения (линии и/или точки), стиль штриховки (для неравенств). Также можно изменить дополнительные свойства графиков в зависимости от их типа, например — количество точек, интервалы построения, сортировка (для таблиц) и т.д.
Программа Advanced Grapher работает с множеством расчетных параметров координатной плоскости (параметры осей, сетки, фона, легенды) и позволяет размещать на них произвольные текстовые метки. Кроме того, приложение имеет встроенные средства для проведения различных вычислений:
- Выполнение регрессионного анализа (подгонка кривой).
- Поиск перекрестков.
- Подготовка аналитических выводов.
- Нахождение уравнения касательной или нормали и его построение.
- Численное интегрирование.
- Нахождение нулей и экстремумов функций и другие возможности.
Программой Advanced Grapher можно пользоваться бесплатно без функциональных огранчиений в течение 30 дней с момента установки.
MagicPlot
MagicPlot — программа, рассчитанная на использования инженерами. Используется для построения графиков функций любой сложности.

В список возможностей и особенностей приложения входят:
- Подгонка нелинейной кривой на основе вводимых пользователем уравнений с возможностью визуального редактирования диапазона.
- Выполнение математических анализов: сглаживание, быстрое преобразование Фурье, интегрирование, дифференциация, гистограммы, свертка, корреляции и др.
- Многопиковый фитинг с возможностью создания моделей подгонки по пикам и перемещения пиков и базовых линий при помощи мыши.
- Возможность изменения стиля кривых и осей, а также сохранение графиков в векторных графических форматах EPS, PDF, SVG и EMF.
- Поддержка пакетной обработки, что обеспечивает возможность обработки и согласования нескольких наборов данных одним и тем же способом без предварительного создания сценариев.
- Возможность создания и сохранения шаблонов фигур. В последствие шаблоны можно применить для форматирования всех имеющихся фигур.
Программой MagicPlot можно пользоваться бесплатно в течение 30 дней.
Efofex FX Draw
Efofex FX Draw — мощная и одновременно простая в использовании программа, предоставляющая высокопроизводительную среду для создания редактируемых диаграмм. Приложение в основном используется для создания математических/геометрических тестов и обучающих материалов для учебных заведений.

Программа FX Draw позволяет создавать математические диаграммы путем использования стандартных для графических редакторов инструментов и автоматически преобразовывать их в изображения профессионального качества, которые можно будет отредактировать в будущем.
Посредством FX Draw имеется возможность создания различных типов графиков и визуализации разнообразных математических функций. Вот небольшая часть возможностей данной программы:
- Построение графиков декартовых и полярных функции.
- Поля наклона.
- Создание диаграмм Аргана и Венна.
- Векторные диаграммы.
- Кривые нормального распределения.
- Построение статистических графиков.
- Создание древовидных диаграмм.
- Диаграмм пеленгов числовых линий.
- Трехмерные объемы вращения.
- Параметрические отношения.
- Интегралы, касательные и нормали к кривым и т.д.
Без покупки лицензии программой FX Draw можно пользоваться бесплатно неограниченное количество времени, но на всех импортируемых из нее изображений с графиками и диграммами будет проставлен водяной знак.
MathGrapher
MathGrapher — полностью бесплатная программа для построения математических графиков. Отличается минималистичным и с виду невзрачным интерфейсом — оно и понятно, ведь программа написана всего одним программистом и с благой целью — предоставление бесплатного и одновременно мощного инструмента для тех, кто не может или не хочет покупать аналогичный платный продукт.

Программа MathGrapher обладает следующими особенностями:
- Построение 2D и 3D-графиков из функций F (x) и F (x, y), содержащие до 20 подфункций, 30 специальных функций, 150 числовых и 100 именованных констант. F (x)-функции можно интегрировать, дифференцировать или искать нули и экстремумы.
- Функции F (x, y) могут быть представлены с помощью закрашенных поверхностей, контурных графиков и поперечных сечений через контурные графики. Средство трехмерного просмотра обеспечивает быстрый просмотр затененной поверхности с разных углов обзора и с разных расстояний.
- Аппроксимация кривой (линейная и нелинейная) с рядом методов наименьших квадратов, в т.ч., к примеру, общий (нелинейный) метод Левенберга-Марквардта, позволяющий подогнать данные под любую определяемую пользователем непрерывную функцию.
- Работа с итерациями. Программа позволяет вычислять алгебраические ряды, например «e= 1+ 1/2! + 1/3! +…», квадратные волны, числа Фибоначчи, предоставляет возможность подробного изучения итерационных карт, детально отображает 2D-орбиты на уровне пикселей, что позволяет изучать стабильность этих орбит.
- Генерация фрактальных кривых (Коха, Серпинского, Леви, Дракона), кривых заполнения пространства (Гильберта, Пеано-Госпера), моделей роста растений и т.д.

Dplot
Dplot — профессиональная многофункциональная программа, позволяющая строить, как графики, так и диаграммы различных типов на основе массивов данных, в т.ч. генерируемых самим приложением по заданным пользователем критериям.

Вот лишь некоторые из функциональных возможностей и особенностей программы Dplot:
- Несколько типов масштабирования, включая линейные, логарифмические и вероятностные шкалы по осям X и/или Y. DPlot также предоставляет несколько типов шкал специального назначения, включая графики распределения размеров зерен, трехчастные сетки (спектры ударных волн), полярные диаграммы, треугольные графики, проекции Меркатора и др.
- Построение контурных 3D-графиков с отображением в виде горизонтальных линий на плоскости XY или в виде заштрихованных полос в трехмерной проекции. DPlot поддерживает как произвольно расположенные трехмерные точки, так и точки на прямоугольной сетке. Для прямоугольных сеток DPlot также может создавать графики водопада, трехмерные гистограммы и простые каркасные сетки.
- Генерация кривых из уравнений вида: Y=f(X), X=f(T) & Y=g(T) и Z=f(X,Y). Наряду со стандартным набором тригонометрических и общих математических функций DPlot поддерживает условные формулы вида if (test, if_true, if_false).
- Построение гистограммы с большим количеством вариантов их представления.
- Построение графиков в виде прямоугольников и точечных диаграмм для одной или нескольких групп одномерных данных.
- Функции манипуляции данными включают интеграцию, дифференцирование, быстрое преобразование Фурье, фильтрацию, сглаживание данных и многие другие — более простые функции редактирования.
Бесплатная ознакомительная версия программы Dplot работает с функциональными ограничениями в течение 30 дней.
Math Mechanixs
Math Mechanixs — программа, разработанная для студентов, преподавателей, инженеров и ученых, а также для всех, кому требуется простое в использовании приложение для работы с математическими функциями и построения графиков на их основе и/или основе массива данных. В программе присутствует мощный редактор формул, позволяющий вводить математическое выражение точно так же, как если бы они писались на листе бумаги.

Если вкратце, при помощи Math Mechanixs можно легко создавать большие двухмерные и трехмерные цветные график на основе математических функций или наборов данных. Встроенная графическая утилита позволяет помечать точки данных, а также масштабировать, вращать и преобразовывать графики из одного типа в другой.
Math Mechanixs позволяет строить:
- Линейные и точечные графики.
- Графики площадей.
- Гистограммы различных типов.
- Диаграммы разброса/рассеивания.
- Многослойные графики.
- Биржевые графики типа «High-Low» (Hi-Lo), «High-Low Open Close» и «Японские свечи».
- Полярные графики.
- Радарные и круговые диаграммы.
- 3D-графики поверхностей с опциями отображения/скрытия невидимых линий, проекций на поверхность, сетки, контуров, затененных областей.
Существует две версии программы Math Mechanixs — полнофункциональная Pro-версия и облегченная (с урезанным функционалом) Lite-версия. Последней можно пользоваться бесплатно. В ней доступен математический редактор, научный (инженерный) калькулятор, инструмент построения 2D/3D-графиков и расширяемая пользователем библиотека функций (с более чем 280 предопределенными функциями).
Falco Graph Builder
Falco Graph Builder — наверное, самая простая из всех существующих программ для построения математических и геометрических графиков на XY-оси. Приложение рассчитано на школьников и студентов, готовящих самостоятельную работу (реферат, доклад и т.д.), в которой должны присутствовать графики.

Программа Falco Graph Builder предельно простая в использовании. От пользователя только требуется ввести в соответствующее текстовое поле математическую формулу (функцию), на основании которой будет построен график. При вводе функций требуется строгое соблюдение синтаксиса. Список поддерживаемых программой математических обозначений можно найти во встроенной справке (F1) в разделе «List of Functions»:

Готовый график можно сразу отправить в печать либо сохранить в виде FGR-проекта для редактирования в Falco Graph Builder в будущем.
SMath Studio
Smath Studio — еще одна бесплатная многофункциональная программа, предназначенная, в т.ч. и для построения 2D и 3D-графиков функций. Вообще, данное приложение создано для выполнения разнообразных математических вычислений. Визуализация функций в виде графиков — только одна из функций Smath Studio.

Работает Smath Studio по тому же принципу, что и Falco Graph Builder — пользователь вводит формулу, программа выполняет расчеты и визуализирует их в виде графика. Однако возможности у данного приложения гораздо шаре, чем у предыдущей программы. Smath Studio понимает несравненно большее количество математических функций. А удобный редактор формул обеспечивает их ввод простыми кликами мышью с последующим вписыванием требуемых пользователю значений.
Veusz
Veusz — очень мощная и абсолютно бесплатная программа, предназначенная для создания готовых к публикации 2D и 3D графиков, а также самых различных типов диаграмм. Приложение позволяет строить графики, как на основе математических функций, так и на основе массивов данных, в т.ч. сохраненных в табличных (CSV) и других типах файлов.

Вот неполный перечень двумерных графиков, что могут быть созданы в программе Veusz:
- Графики XY с полосами погрешностей и возможностью выбора цветов, стилей и размера линий.
- Линейные графики и графики функций.
- Гистограммы.
- Графики векторных полей.
- Коробчатые диаграммы.
- Полярные графики.
- Подгонка функций к данным.
- Сложенные графики и массивы графиков.
- Тернарные графики и многие другие.
К списку трехмерных графиков, создаваемых в Veusz, относятся:
- Точечные графики.
- Линейные графики функций.
- Графики поверхностей.
- Массивы графиков.
Созданные в программе графики могут быть сохранены в виде растровых и векторных изображений. Поддерживается экспорт проектов в форматы EPS, PDF, PNG, SVG и EMF, но их список можно расширить путем установки плагинов (можно найти в интернете).
MathCAD. MatLab
Большинство пользователей карманных компьютеров используют их как записные и телефонные книжки, а также для чтения книг. В комплекте почти всех наладонников как на основе Windows Mobile так и на базе Palm OS имеется набор офисных приложений включающий электронные таблицы, которые с успехом можно использовать для достаточно серьезных расчетов.
Несмотря на это для КПК можно найти и более специальные математические программы, и, что самое главное, среди них есть и бесплатные. Так для Palm OS существует мощная бесплатная вычислительная среда LyME. Что же касается популярной платформы Windows Mobile, то здесь почти все математические пакеты представляли собой либо вообще простые научные калькуляторы, либо калькуляторы с графическими возможностями.
Исключением является программа SMath Studio. Она позволяет совершать достаточно много математических операций, как над числами, так и с уравнениями. В программу включены возможности работы с матрицами, построения графиков функций, а также обычные пошаговые вычисления с использованием последовательного набора формул.
Интерфейс SMath Studio очень похож на интерфейс популярного математического пакета MathCAD и те, кто работал с этой программой, будут чувствовать себя как дома. Курсор, как и в прототипе, имеет форму крестика, шрифт и графическое представление чисел и формул также перенято у MathCAD.
Для облегчения ввода на КПК программа имеет панельки с шаблонами, которые позволяют быстро вводить необходимые выражения. Ввиду ограниченности места на экране КПК похожие элементы объединены в одну ячейку, а прокрутка осуществляется движением стила.
Для присвоения переменной значения или выражения необходимо ввести двоеточие, после чего программа сама поймет намерения пользователя и добавит знак \»=\». Для того, чтобы получить ответ, достаточно записать на рабочем листе переменную, которой присвоено выражение, и написать после нее знак \»=\».
Так как курсор во время сеанса работы можно разместить в любом месте экрана, то стоит учесть особенность, перекочевавшею в эту программу из MathCAD: все определения переменных справедливы только для выражений находящихся ниже них.
SMath Studio
Мало какие математические пакеты могут похвастаться одновременно и бесплатностью, и русскоязычным интерфейсом, и поддержкой различных платформ. Именно поэтому SMath Studio будет интересен для большинства потенциальных пользователей.
Найти программу в Интернете очень легко. Русскоязычная версия её официального сайта располагается по адресу ru.smath.info. Весь сайт организован как форум, однако на самом деле разобраться в том, как скачать программу и как пользоваться документацией к ней, совсем несложно. Размер дистрибутива программы составляет порядка шестисот пятидесяти килобайт, что, согласитесь, совсем немного даже для тех, кто использует для доступа в Интернет dial-up подключения.
После установки при первом запуске программы интерфейс её почему-то оказался на болгарском. Впрочем, найти язык в опциях и исправить на русский не составит проблем — интерфейс программы хорошо продуман, и потому запутаться в нём довольно сложно. Вероятно также, что виноват я сам, поскольку при старте программа предложила обновить себя до стабильной версии, но сделать это я поленился.
Для начала стоит сказать, что SMath Studio — это очень гибкое в плане поддерживаемых платформ приложение. Вы можете использовать его как под Windows, так и под Linux, и на этом дело не кончается — если вам надо посчитать интеграл или построить график не на настольном компьютере и не на ноутбуке, а на КПК, то и здесь SMath Studio к вашим услугам. Правда, для запуска программы нужно иметь установленный .NET Framework (а под Linux, соответственно, Mono), но это не такая уж и большая плата за удобства.
Итак, что же, собственно говоря, умеет эта программа? Как то ни странно, довольно много. С её помощью можно выполнять арифметические операции, решать уравнения, считать интегралы и производные, строить двухмерные и трёхмерные графики, выполнять действия над матрицами и даже программировать. Фактически, перед нами бесплатный аналог такого известного математического пакета, как MathCAD. Как и MathCAD, SMath Studio отличается максимально приближенной к обычной математической записью формул, а также возможностью выполнения как символьных, так и численных операций. Конечно, было бы наивно ожидать от SMath Studio тех же возможностей, которые предоставляет «навороченный» и не самый дешёвый пакет MathCAD, но для множества пользователей (например, студентов) будет более чем достаточно тех возможностей, которые предлагает SMath Studio. Более того, для таких пользователей SMath Studio — даже более предпочтительный программный продукт, нежели MathCAD: во-первых, в силу своей бесплатности, а, во-вторых, в силу простоты освоения и использования.
Стоит отметить, что создатели программы не только постарались сделать простой сам её интерфейс, но и снабдили её подробным математическим справочником, который пригодится тем, кто хочет освежить свои познания в математике. В этом справочнике написано о таких полезных вещах, как тождественные преобразования, тригонометрия, логарифмы, производные функций, интегралы, ряды. Кстати, насчёт интегралов — программа умеет считать только определённые, что, впрочем, совсем не удивительно. Недаром математики говорят, что считать производные — это ремесло, а считать интегралы — это искусство. Конечно, думаю, что рано или поздно поддержку вычисления неопределённых интегралов авторы программы одолеют, но пока что её отсутствие вряд ли можно считать таким уж серьёзным минусом в свете остальных функций SMath Studio.
Несколько слов, конечно, стоит сказать и о построении графиков в программе. Выглядят они в SMath Studio, конечно, не так красиво, как в специальных пакетах для построения графиков и визуализации данных, но и в MathCAD’е они смотрятся не лучше. Более существенный минус состоит в том, что их нельзя масштабировать скроллингом мыши и что при наличии неустранимых точек разрыва у функции график обрывается в значительном удалении от этих точек. Если первое не так уж, в целом, и критично, то что касается второго пункта, всё-таки хотелось бы иметь настройки, позволяющие как-то повлиять на построение графиков.
Можно было бы рассказывать об SMath Studio ещё очень долго, однако лучше всё-таки скачать программу самостоятельно и попробовать в действии. В общем и целом, следует признать, что SMath Studio — замечательный программный продукт, который отлично подходит тем, кто не использует специфических функций более серьёзных математических пакетов и желает иметь простую бесплатную программу для решения насущных задач, обладающую русскоязычным интерфейсом. Думаю, что среди наших читателей будет немало тех, кому SMath Studio придётся по душе.
Математический пакет для Android “Микро-Математика”: что нового?
Вот и пролетело полгода с тех пор, как я перевёл свой математический пакет на Андроид, “Микро-Математику”, в статус свободных приложений с открытым исходным кодом и опубликовал код на github. Благодаря такому шагу, “Микро-Математика” получила мощный импульс для развития, а я сам — ценный и весьма позитивный опыт общения с сообществом. В данной небольшой заметке я хочу представить новую версию приложения, которая сейчас готовится к релизу, а также поделиться всем тем позитивом, который был получен в рамках работы над релизом. Эта заметка для тех, кто интересуется как общими вопросами разработки под Андроид и ПО с открытым исходным кодом, так и прикладными вопросами, связанными с математическими вычислениями.
Основные результаты за полгода
Отзывы на Google Play, звёздочки а все такое — это, конечно интересно, но, как я для себя понял, не очень информативно по сравнению с активностью энтузиастов в репозитории github. Благодаря таким людям, как @KOLANICH, @Symbian9, @tianxiaogu, @plottar удалось не только исправить досадные ошибки, но и поддать газу и реализовать много новых функций, например:
- Приложение теперь опубликовано на F-Droid дополнительно к Google Play
- Реализована автоматическая сборка и публикация приложения на github после каждого коммита с использованием Travis CI, о чем я писал тут
- Реализована поддержка цветовых профилей и добавлены несколько нескучных тем оформления.

@afmachado по собственной инициативе перевёл приложение на португальский. Подобный перевод — дело непростое, так как помимо текстовых ресурсов, приложение содержит очень объёмную документацию, без перевода которой подобная деятельность не имеет большого смысла. Но @afmachado совершил подвиг и перевёл и и её тоже. Наличие большого объёма сопроводительной документации с точки зрения мультиязычной поддержки является проблемой — из-за неё “зависли” переводы приложения на украинский, французский и испанский. Но, с другой стороны, я не могу представить себе достаточно сложный математический пакет без подобной документации.
Интеграция с SMath Studio
@Symbian9 добавил простой, на первый взгляд, запрос: возможность работы с документами SMath Studio. Когда я только начинал разрабатывать “Микро-Математику”, я ничего подобного не планировал. Но сейчас я вижу, что сила — она не в разрозненных приложениях, а в некоторой экосистеме, пусть и небольшой. И подобные запросы пользователей буквально вынудили меня переосмыслить вопросы интеграции с другими системами и связаться с автором SMath Studio, Андреем Ивашовым.
Длительное, детальное и очень критическое совместное обсуждение наших продуктов подтолкнули нас к мысли о координации развития наших систем. Андрей реализовал со свой стороны μMath плагин, который позволяет открывать файлы “Микро-Математики” в SMath Studio.

Я же добавил возможность открытия файлов SMath Studio в “Микро-Математике”, благо оба формата реализованы на базе XML. И именно эта интеграция и является ключевой особенностью новой версии, которая сейчас готовится к релизу.

Итак, начиная с версии 2.17, в “Микро-Математике”, на мобильном устройстве, можно открыть документ SMath Studio, продолжить работу в дороге, сохранить результат (в формате “Микро-Математики”), а при наличии большого ПК, спрятаться на чердак открыть этот документ уже на нём в SMath Studio, и работать, работать.
Естественно, в силу исторически сложившегося независимого развития этих двух продуктов, имеются серьёзные ограничения. “Микро-Математика” пока ещё не поддерживает циклы, матрицы, строковые функции, а также всю функциональность, реализованную сторонними разработчиками в плагинах SMath Studio. Есть отличия в наборе поддерживаемых единиц измерений, в представлении графиков функций, индексации массивов (в SMath Studio они начинаются с единицы, а в “Микро-Математике” с нуля). Из всех стандартных примеров, поставляемых с SMath Studio, без ошибок открывается только один, так как все остальные содержат либо циклы, либо матрицы. Хорошее представление о совместимости даёт этот документ — в нём собраны все конструкции, которые поддерживаются обеими системами.
В общем, есть масса направлений, по которым можно (и нужно) проводить унификацию. В версии 2.17, некоторые шаги в этом направлении уже сделаны:
- в “Микро-Математику” добавлены новые встроенные функции
- некоторые встроенные функции удалены или переименованы так, как в SMath Studio
- Так как встроенных функций становится все больше и больше, появилась возможность настройки математической палитры, чтобы скрывать из неё неиспользуемые функции

- Реализована поддержка единиц измерений. Поддерживаемые единицы измерений собраны в этом документе. Очень помогла в этом отличная библиотека JScience. Она хоть и устарела, но полностью покрывает весь связянный с единицами измерений функционал.

Теперь со всей очевидностью видна та масса математического функционала, которого не хватает в “Микро-Математике”. Есть куда расти. Чтобы этот рост не создавал новых проблем, в версии 2.17 я немного причесал вычислительное ядро. Добавлять новые встроенные функции теперь стало намного проще. Все встроенные функции собраны здесь и сгруппированы в тематических классах, например, тригонометрические, степенные, логические и т.д. Каждая встроенная функция, помимо свойств (тип, иконка, описание, количество параметров) содержит также метод вычисления значения и опциональные методы проверки аргументов и вычисления первой производной. Если есть желающие расширить список встроенных функций (добавить, например, статистику, спектральный анализ, специальные функции) — милости прошу. Теперь это стало ещё проще, благо, многое из этого уже реализовано в используемой библиотеке The Apache Commons Mathematics Library. Грубо говоря, осталось только правильно подключить имеющиеся там реализации и написать тесты. Хотя могут возникнуть нюансы.
Планы
С учётом всего вышесказанного, а также обсуждений “Микро-Математики” с разными людьми, я вижу три основных направления дальнейшего развития:
- Улучшение интерфейса: реализация перетаскивания формул, изменение размеров объектов не только через окно настроек, но и через масштабирование, настраиваемые цвет, размер и стили текста. Ещё больше нескучных тем оформления. До сих пор открыт запрос, чтобы добавить высококонтрастные черно-белые темы. В силу наличия большого количества используемых цветов, это сложно. Возможно, придётся изменить, например, индикацию ошибок. В любом случае, приглашаю тех, кто чувствует в себе дизайнерскую жилку, помочь как советом, так и делом.
- Дальнейшая интеграция с SMath Studio. Унификация вычислений, автоматического тестирования, пользовательского интерфейса (насколько это возможно с учётом принципиальных отличий мобильной платформы и ПК). Если кто является счастливым обладателем коллекции расчётов SMath Studio, милости прошу попробовать их в “Микро-Математике” (с учётом тех ограничений, о которых я писал выше).
- Расширение математического функционала: векторы и матрицы и все, что с этим связано (умножение, сложение, вычитание, транспонирование, инвертирование). Функции статистики, спектральный анализ, специальные функции. Циклы. Быть может, элементы аналитических вычислений на базе сторонних библиотек, той же Symja, например упростить, выделить общее, взятие производной.
Разное
Произошёл интересный случай. Есть один очень неспокойный энтузиаст, он взял ядро рисования формул из “Микро-Математики”, приделал к нему библиотеку аналитических вычислений Symja, и получился очень забавный калькулятор. Сложно сказать, насколько такой калькулятор будет популярен, но прямое использование кода другими разработчиками не может не радовать.