Журнал LinuxFormat - перейти на главную

LXF144:Сравнение

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(викификация, оформление, иллюстрация)
 
 
Строка 1: Строка 1:
 +
[[Категория:Сравнение]]
 +
 
: Каждый месяц мы сравниваем тысячи программ – а вы можете отдыхать!
 
: Каждый месяц мы сравниваем тысячи программ – а вы можете отдыхать!
  

Текущая версия на 18:25, 26 декабря 2014


Каждый месяц мы сравниваем тысячи программ – а вы можете отдыхать!

Содержание

[править] Сравнение: Графопостроители

Один график заменяет тысячу цифр, но как его построить? Марко Фиоретти рассмотрит пять различных способов для этого.


Под графопостроителями мы подразумеваем программы, помогающие разобраться в числовых данных или математических выражениях, создавая и анализируя соответствующие графики. Подобные приложения – несомненно, нишевые продукты, по сравнению с повседневными программами типа файловых менеджеров или почтовых клиентов. Тем не менее, построение графиков функций и данных делает эту нишу достаточно большой, чтобы оправдать Сравнение: конечно, мало кто использует диаграммы каждый день, но большинство пользователей компьютеров когда-нибудь да сталкиваются с задачей их создания.

Многие предпочитают строить диаграммы по таблице, подобной Calc, но у этого метода есть пределы. Автономные специализированные графопостроители-плоттеры также могут быть гораздо удобнее, если вы хотите включить графики в блог или на вики-страницу.

Бывают люди, рисующие диаграммы просто для удовольствия, но диаграмма полезна во всех видах рутинных операций – например, при подготовке школьного доклада или для показа на вашем блоге, на сколько больше денег собрано в прошлом году. Вся эта информация доходчиво передается хорошо сделанным графиком. Кроме того, мы живем в мире, который контролируется огромным количеством цифр и зависит от них всевозможными способами. Умение быстро превратить цифры в график поможет вам выявить их истинное значение и влияние на вашу жизнь. Да и вообще, численная грамотность становится все более востребованной – и в рамках качественного образования, и для того, чтобы найти или сохранить хорошую работу. В наши дни все должны поиграть с графопостроителями – ну хоть разок.

[править] Про наш тест…

Программы, описанные на следующих четырех страницах, тестировались на двуядерном AMD 64 $5800+ система с 8 ГБ ОЗУ под Fedora 14, со всеми обновлениями, доступными по состоянию на февраль 2011 года. Выбирая, что включить в Сравнение, мы искали только программы, посвященные вычислениям и построению графиков по данным и функциям, то есть исключили электронные таблицы. Calc и иже с ним очень хороши, но это другой вид программ, и часто они менее гибки, чем специализированные. Помимо выполнения функций калькулятора/плоттера, мы требовали, чтобы программа без проблем устанавливалась и запускалась на современных дистрибутивах и создавала графики из файлов данных или формул, заданных пользователем.

[править] Grace

Построение графиков и статистический анализ из старых добрых Unix-дней.


Это хорошая программа, но ее чуть сложнее найти, чем вы ожидаете. Официально она называется Grace. А вот название исполняемого файла, вводимое в командной строке или добавляемое в системные меню – xmgrace.

По виду Grace заметно отличается от своих конкурентов – нравится вам это или нет. Пользователи, впервые увидевшие графический рабочий стол Unix в последние десять лет, вероятно, будут озадачены, а те, кто начинал в прошлом тысячелетии, ощутят ностальгию. Да, Grace – старомодная программа. Она построена на виджетах в стиле Motif, уже довольно редких на настольных компьютерах GNU/Linux. Это не должно, однако, подбить вас закрыть программу, не попробовав.

[править] Построение данных

Официально Grace описывается как «2D-инструмент построения графиков по числовым данным». Иными словами, можно загружать текстовые файлы со столбцами цифр и использовать их как координаты для графиков. Кроме того, программа имеет встроенный язык сценариев, позволяющий на досуге создавать функции. Для загрузки данных из файла, выберите Данные > Импорт ASCII из главного меню. Выберите Один набор для файла с двумя столбцами чисел, или Блок данных, если столбцов в файле несколько. При желании такие данные можно обрабатывать внутри Grace, не изменяя исходный файл. Операции такого рода называются преобразованиями и доступны из меню Данные.

Преобразований в Grace множество – список включает изменения осей, скользящее среднее, корреляции и множество функций, определяемых пользователем. В официальном учебнике имеется раздел «Создание наборов внутри Grace»; там описано несколько способов создания наборов данных без чтения их из файла. Другой способ добыть исходные данные – создать ссылку на канал, то есть на стандартный вывод какой-либо другой программы. Grace умеет обнаруживать изменения в исходных файлах и автоматически перерисует графики, зависящие от них.

Итак, что же содержится в интерфейсе Grace? Строки в верхнем меню открывают серию панелей и окон, которые и сами по себе довольно мощные средства. Например, Команды – своего рода встроенный терминал, с подсказкой, при которой вводятся или повторяются команды. Можно прочитать сообщения об ошибках и различные уведомления, а также сохранить их в файле.

Файл > Настройки печати открывает довольно богатое содержимым окно, где определяется и как сохранить файл в любом доступном в Grace формате, и как его распечатать. Раздел настройки печати в этой панели содержит опции размеров страницы, ориентации, разрешения и шрифтов. Grace поддерживает вывод в JPEG, PNG, PNM, SVG, PostScript и ряд старомодных форматов прошлого века, типа MIF. А как насчет графиков? Один экземпляр Grace управляет неограниченным числом графиков и кривых в каждом графике, до 256 цветов и 32 вариантов заполнения. Чтобы упростить понимание графиков, можно комментировать их или добавлять объекты в панели Окно > Объект. Кнопки со стрелкой и масштабирование обеспечивают перемещение по любому графику и изучение его частей в подробностях.

Общая настройка и организация работы в Grace осуществляется через файлы Параметры и Проект. Файлы второго типа содержат все сведения, необходимые для воссоздания определенного графика или набора графиков. Файл Параметры содержит только общие настройки, которые можно выдать в общий доступ – сохранить, а затем перезагрузить – в различных проектах.

Документация составлена неплохо. Как получить максимальную отдачу от Grace, подскажет руководство на сайте или учебник на том же сервере. Кроме того, предоставляется множество демо-материалов – их легко найти парой щелчков в меню Справка.


[править] Jgnuplot

Приручить Gnuplot с помощью Java? Странная идея, но работает мощно.

Jgnuplot (или Jgp для краткости) – Java-интерфейс для Gnuplot с 2D- и 3D-графикой. Если вам нужно то, что Gnuplot не выполняет без долгих уговоров, лучше поищите другую программу. Однако раз Gnuplot запускается Jgp, вы мо-жете использовать с последней всю обширную онлайн-документацию по первой.

По той же причине, все, что делается в Jgp, легко использовать снова или интегрировать в скрипты оболочки, которые строят данные автоматически. Окно Jgp имеет четыре вкладки под названиями Наборы данных, Этикетки, Переменные и Добавить команды построения, и консоль похожа на представленную в Grace. Первая вкладка содержит список функций, которые определены и доступны для построения. Можно определить сколько угодно источников данных, и с этой точки зрения Jgp почти так же гибка, как Grace. Нажмите на кнопку Добавить и выберите секцию Правка > Добавить набор данных, чтобы открыть всплывающие панели; затем поясните Jgp, является ли источник данных внешним файлом или функцией. Далее, выдайте Gnuplot название и задайте тип диаграммы: линейная, гистограмма или любой другой формат, поддерживаемый Gnuplot.

Если вместо чтения чисел из файла вы хотите построить математическую функцию, введите это в области панели Datastring. Если текущий источник данных – файл ASCII, укажите в том же поле, какие столбцы в файле соответствуют осям X и Y. Значение по умолчанию, даваемое Jgp для этой настройки, если источник данных является файлом – 1:2. Эта строка, которая на самом деле не более чем опция Gnuplot, означает «используйте номера в первом столбце как значения для оси X, а числа во второй колонке – для оси Y». Jgp может обновить график автоматически, если произойдут изменения в файле данных, но эту опцию надо активировать, отметив соответствующую кнопку.

[править] Смесь источников

В Jgp можно смешивать данные из файлов и функций в одном графике. Можно выбирать между файлом данных и общими математическими функциями двумя радиокнопками: к сожалению, при каждом открытии окна Редактирование набора данных для обновления функции Jgp сбрасывает эти кнопки в значение «исходный файл данных». При выборе этой опции Gnuplot ожидает значение типа 1:2 – номера столбцов – в поле Datastring. Если, как и бывает при работе с функцией, это поле содержит формулу, вы получите ошибку «не определена переменная». Вроде бы единственное решение – установка кнопки Источник в нужные значения вручную при каждом открытии этого окна Jgp.

Картинка вверху показывает, что мы получили, определив источники данных и приказав Jgp создать график. Графики можно сохранить в виде PostScript или SVG-файлов. Красная и зеленая кривые взяты из двух файлов ASCII (но это могут быть и несколько столбцов из одного файла). Синяя линия соответствует функции у = 2*х + 50*cos(X). Можно также клонировать наборы данных для экономии времени, перегружать функцию или файл данных с новым именем или просто изменить некоторые параметры.

Введя наборы данных, вы можете легко изменить порядок, по которому Jgp оценивает и строит их: выберите какой-нибудь щелчком мыши и переместите его вверх или вниз по списку нажатием соответствующих клавиш. Gnuplot рисует графики в порядке их указания, один поверх другого, и при неудачном порядке вывода результат может стать менее читабельным.

Все инструкции, которые вы дали Jpg нажатием и вводом необходимых значений в графическом интерфейсе, сохраняются в файле с именем work.gnuplot, в том же каталоге, из которого запускается программа. Удовлетворившись результатом, вы можете сохранить этот файл в другом месте и применить его для создания таких же диаграмм автоматически, из сценария оболочки. Можно увидеть в режиме реального времени, как ваши действия в GUI переводятся в команды Gnuplot, нажав кнопку Preview Plotstring в правом нижнем углу. Эта особенность делает Jgp отличным инструментом для обучения Gnuplot методом проб и ошибок, не набирая слишком много цифр.

[править] Изучите Jgp в Gnuplot

Большое преимущество Jgp – то, что его можно изучать по всей доступной онлайн-документации для Gnuplot. Сперва возьмите любой учебник по Gnuplot – например, из LXF122. Посмотрите на картинки и команды Gnuplot, и (если вы не нарвались на одну из неподдерживаемых опций) вы мигом найдете, как сделать то же самое в Jgp.


[править] KAlgebra

Толковый и дружелюбный репетитор по математике в KDE.

Так же, как Jgp можно (отчасти) определить как способ состряпать формулы и команды для Gnuplot, обойдясь без серьезного их изучения, KAlgebra можно рассматривать как незамысловатый способ изучить и использовать MathML, язык математической разметки [Mathematical Markup Language] (http://www.w3.org/math).

KAlgebra фокусируется на математике, а не на построении и анализе произвольных данных. Как приложение Qt/KDE, оно вписывается в любой современный дистрибутив Gnu/Linux гораздо лучше, чем Grace или, если на то пошло, Jgp. Знание MathML или любой из кучи учебников, доступных в Интернет для этого языка, помогут вам стать опытным пользователем KAlgebra. Но – цитируем руководство программы: «Чтобы использовать Kalgebra, MathML знать не надо». Вы можете определять функции почти так же, как и при записи их на бумаге.

Кроме того, одна из сильных сторон KAlgebra – обширная и дружелюбная документация. Меню Справка содержит ссылки на простое и достаточно полное руководство, а вкладка Словарь в главном окне содержит список поиска всех алгебраических и логических операторов MathML, поддерживаемых в KAlgebra. Каждый оператор снабжен описанием, списком параметров, названием в KAlgebra и примером построенного графика.

[править] Вычисления

Главное меню KAlgebra и остаток его окна имеют почти одинаковую структуру, в том смысле, что в них есть Консоль, 2D-график и 3D-график как основные компоненты. Вкладки и пункты верхнего меню связаны интуитивным, почти самодокументируемым способом.

Панели, связанные с каждой вкладкой - это те места, где вы все делаете и видите результат. Выпадающее меню дает доступ к действиям, выполняемым на вкладке с тем же именем. В Консоли, например, можно настроить KAlgebra, дать обычные команды или просто выполнить некоторые расчеты. В последнем варианте вы можете задать переменные, изменять их значения в любой момент, дважды щелкнув на них, и повторно использовать результат предыдущего расчета, потому что он всегда сохраняется в специальной переменной с именем ans.

От всего этого было бы мало проку, если бы оно терялось при закрытии KAlgebra, но не бойтесь! Все, что вы набирали, можно сохранить в виде скрипта или загрузить файл скрипта и выполнить все команды из предыдущей сессии, не вводя их заново. Эти файлы сделаны из простого текста, так же, как и скрипты оболочки. Функция Export-Log в меню Консоль сохраняет ваш ввод как HTML-страницу, готовую для печати или публикации в Интернет.

О расчетах довольно; давайте нарисуем что-нибудь. На изображении совмещены два окна KAlgebra, чтобы дать вам представление о возможностях 2D-графики. Настоящий график изображен в левой части закладки; здесь можно его увеличить, уменьшить и отобразить касательные при перемещении мыши над кривыми. Правая панель состоит из четырех вкладок. Чтобы увидеть что-нибудь, начните со вкладки под названием Добавить: введите вашу функцию в верхнее поле, выберите ей цвет и наслаждайтесь динамическим просмотром.

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

3D-часть проще, чем 2D, потому что KAlgebra сейчас поддерживает только 3D-функции в форме Z = F (х, у). В этих пределах, использовать ее – одно удовольствие. Нарисовав свои функции, вы можете не только увеличить их, но и плавно развернуть, с помощью клавиш со стрелками. Все графики можно сохранить в формате PNG, но на них нельзя добавлять подписи и другие объекты, как это позволяет Grace.

[править] KmPlot

Кузен KAlgebra, специализирующийся на математическом анализе.

На первый взгляд KmPlot напоминает KAlgebra – оба являются KDE-приложениями. Еще их объединяет то, что KmPlot – продвинутый графический калькулятор, и в нем нельзя загрузить и графически отобразить числовые данные.

На этом сходство и заканчивается, потомучто главная цель KmPlot немного иная. KmPlot не рисует 3D-графиков, но поддерживает декартовы, полярные, параметрические, неявные и дифференциальные функции. Координаты указаны в традиционном декартовом, линейном формате или, если вы выберите Вид > Встроить виджет в тригонометрические функции, как кратные числу «пи». Щелчок левой кнопки мыши в области рисования отобразит нормаль и касательную к выбранной точке кривой. В выпадающем меню Инструменты можно запустить довольно сложный калькулятор и редактор математических выражений.

KmPlot – простой в использовании инструмент, когда нужно вычислять интегралы, производные, минимум и максимум функции. Другой козырь KmPlot – исследование параметрических функций. До четырех параметров можно связать с ползунками и перемещать ползунки, любуясь изменениями построенной функции; но это еще не все. Меню, раскрывающееся по щелчку правой кнопки мыши, откры- вает доступ к панели Анимация, где можно задать минимальное и максимальное значения параметра и шаг его приращения и отобразить в KmPlot последовательность всех версий графика, соответствующих каждому значению параметра, то есть семейство функций.

Команды и функции, используемые в любой сессии KmPlot, можно сохранять как текстовые файлы в XML-подобном формате.

[править] Kayali

Звездный час этой программы еще не настал, но присмотреться к ней стоит.

В отличие от прочих приложений Сравнения, Kayali пока в альфастадии развития – и это бросается в глаза. Причина включения Kayali в Сравнение в том, что это перспективный и интересный инструментик, дополняющий то, что делают все другие. Kayali также легко установить и запустить на тест-драйв.

Основная цель Kayali – интегрирование или дифференцирование математических выражений и их построение через Gnuplot. Исполняемый файл с именем kayali (приложение Python с графическим интерфейсом на Qt) – всего лишь посредник. Одной из причин, почему Kayali достоин внимания – применяемый здесь движок для вычислений: это популярная и мощная система компьютерной алгебры Maxima (http:/ /maxima.sourceforge.net). Сейчас Kayali понимает почти все операции, которые делает Maxima, но передать в Gnuplot для построения можно только их часть (свежий список см. на сайте).

Интерфейс настолько прост, насколько это вообще возможно при вычислении интегралов и решении дифференциальных уравнений. Сначала напишите математическое выражение в текстовом поле вверху экрана и нажмите Ввод. Оно появится, красиво отформатированнное, во вкладке под названием Тетрадь, содержание которой можно сохранить в формате PDF. Затем правой кнопкой мыши нажмите на отформатированное выражение в Тетради, чтобы открыть всплывающее меню с тремя основными функциями Kayali: Интегрирование, Дифференцирование и График.

Первые два генерируют интеграл или производную от того, что вы ввели. При выборе третьего Kayali открывает новую вкладку под названием График. Но график появляется не там. На самом деле Kayali отображает его в отдельном окне, которое является терминалом wxWidgets из Gnuplot.

[править] Вердикт

Jgnuplot 8/10

Мы должны признаться, что нашим первым рефлексом было сказать, что победитель данного Сравнения – свободное ПО как таковое, или, более точно, богатая экосистема, которую оно образует, давая всем пользователям шанс создать нечто действительно отвечающее их нуждам.

В этом Сравнении нам было сложнее выбрать победителя, чем в предыдущих. Конкурирующиее приложения принадлежат к общей категории «программ, преобразующих числа и/или функции в рисунки». На этом, однако, их сходство практически заканчивается: они настолько разнообразны, что сравнивать их трудно, поскольку каждое имеет свою направленность. Kayali развито хуже других, и его следует снять с дистанции, но выбрать из оставшихся непросто. Возможно даже, что каждая из четырех других программ станет лучшей на определенном этапе вашей жизни, поэтому они все победители.

Вероятно, правильно будет изучать математику с KAlgebra и KmPlot (с первым – по программе средней школы, а со вторым – на университетском курсе), а затем строить графики в Jgnuplot, если только вы не занимаетесь статистикой серьезно: в этом случае стоит предпочесть Grace.

А коли победитель только один, остановимся на Jgnuplot. Во-первых, по причине гибкости: можно обрабатывать и файлы данных, и функции. Во-вторых, потому, что работа в Jgnuplot не так страшна для начинающих, как в Grace. Третья, и может быть, самая важная причина – интеграция со скриптами. Jgnuplot производит команды Gnuplot, пригодные для повторного применения в других используемых вами приложениях, даже автоматически.

Когда дело доходит до серьезных вычислений, однако, Jgnuplot – не ответ. Он даже не пытается решать уравнения или делать всякие штуки типа анимации; а альтернативные приложения такое умеют. Тем не менее, это эффективное решение, если надо всего лишь построить график, и предлагает множество хороших способов, независимо от того, откуда берутся числа. Перейдите на http://www.gnuplot.info/screenshots или на любую другую галерею Gnuplot: почти все, что вы видите, можно сделать в Jgnuplot, не мучаясь с командной строкой.

[править] Изучим цифры

Название Инструментарий Размер пакета Среднее потребление памяти Настраиваемость
Grace Motif 4,8 МБ 3,9 МБ Высокая
Jgnuplot Java 222 КБ 3,3 МБ Высокая
KAlgebra Qt/KDE 8,6 МБ 30 МБ Высокая
KmPlot Qt/KDE 8,6 МБ 15 МБ Средняя
Kayali Qt 568 КБ 20 МБ Низкая

Примечание: приведенные размеры пакетов и статистика использования памяти приблизительны. Размер пакета и потребление памяти варьируется от системы к системе и сильно зависит от конфигурации программы, выполняемых задач и многих других факторов. Например, KmPlot и KAlgebra оба поставляются внутри пакета KdeEdu-math, потребление памяти Jgnuplot зависит от интерпретатора Java, и несколько программ также используют Maxima и/или Gnuplot. Все программы доступны под GPL или другими открытыми лицензиями.

Персональные инструменты
купить
подписаться
Яндекс.Метрика