LINUX.ORG.RU

LabPlot 2.3.0

 , ,


2

1

23 июля 2016 вышла новая версия программы LabPlot, предназначенной для интерактивного построения графиков и анализа научных данных.

Благодаря усилиям Garvit Khatri во время GSoC2015, была проведена работа по интеграции Cantor (программы, предоставляющей удобный интерфейс к различным свободным математическим пакетам). Теперь в рамках LabPlot можно проводить вычисления, используя установленные в системе Python или maxima. В настоящее время поддерживаются списки maxima, списки и кортежи Python, массивы NumPy.

Кроме этого, в LabPlot 2.3.0 были реализованы следующие возможности:

  • преобразование Фурье;
  • сглаживание данных;
  • интерполяция данных;
  • вычисление статистических величин;
  • экспорт данных в таблицы LaTeX.

Начиная с версии 2.1.0, LabPlot выпускается в двух версиях – первая основана на kdelibs 4, вторая – на KDE Frameworks 5 (KF5).

>>> Подробности

Ответ на: комментарий от anonymous

В этом основная проблема gnuplot - он может использоваться _только_ для штучной ручной подготовки каждого графика по уже вычищенным данным.

Данные чистить всегда придётся независимо от используемого инструмента. gnuplot же как раз можно с успехом использовать (и много где используется) для массовой быстрой отрисовки тучи графиков «на быстро посмотреть на предмет не случилось ли чего». Основная причина его использования, что он много где есть из коробки и прост как костыль для шпалы. Простейшие условия на данные в gnuplot наложить можно.

Безусловно есть более другие гораздо более продвинутые инструменты, но они и посложнее будут.

Evgueni ★★★★★ ()
Ответ на: комментарий от anonymous

anonymous> В этом основная проблема gnuplot - он может использоваться _только_ для штучной ручной подготовки каждого графика по уже вычищенным данным.

Как раз для штучной подготовки графиков проще использовать средства типа qtiplot. gnuplot же очень силён для автоматизации с учётом однотипности данных.

Quasar ★★★★★ ()
Ответ на: комментарий от anonymous

Но в этом качестве его вполне может заменить Matlab/Octave/Julia/R/Python, использовавшийся всю дорогу до.

Нет, не может. Мои скрипты работают по многу часов — слишком роскошно их перезапускать, если тебе вдруг захочется поменять длину tics-ов на графике с 1.3 на 1.5. И напротив, я не буду тратить время разработки, чтобы скрипт плевался графиками типографского качества для данных, которые неизвестно войдут ли еще в статью или нет. Когда я генерирую окончательные данные, я пишу в файл обычные ascii-данные, а все красивости делаются в гнуплотовском скрипте. Происходит это уже на этапе подготовки манускрипта, когда более-менее понятно уже что, в каком объеме и формате вставлять. И начинаешь решать проблемы, как обеспечить наилучшее представление данных.

Поэтому, повторяю, все эти матплотлибы и прочие рисовалки, встроенные в соотв. языки, не конкуренты гнуплоту, который работает на стадии предпечатной подготовки.

Самое смешное, что «визуальные» графопостроители полностью выпали из моего workflow как крайне неэффективные. Уже при минимальном опыте работы с любым визуализатором оказывается проще править готовый скрипт, чем возюкать мышкой. Из визуальных средств остаётся полезным только zoom/shift и переключение (горячей клавишей) linear/logscale — всё это есть у гнуплота. А, он еще умеет строить графики из pipe-а, чем я пользуюсь иногда, фильтруя output программ awk-ом и скармливая результат гнуплоту.

Да, о себе: у меня 33 статьи сейчас в портфолио, так что небольшой опыт их написания есть.

unanimous ★★★★★ ()
Ответ на: комментарий от unanimous

Поэтому, повторяю, все эти матплотлибы и прочие рисовалки, встроенные в соотв. языки, не конкуренты гнуплоту, который работает на стадии предпечатной подготовки.

Что мешает читать ими данные из файла и строить графики как гнуплотом?

Самое смешное, что «визуальные» графопостроители полностью выпали из моего workflow как крайне неэффективные.

Сильно зависит от сложности графиков.В origin картинку быстрее привести к печатному виду, чем высчитывать в гнуплоте из какой точки в какую нарисовать стрелочку. Гнуплот как раз удобен для чернового рисования.

hotpil ★★★ ()
Ответ на: комментарий от unanimous

я студент и у меня нет/мало опыта

Переход на личности добавляет +200 к весу аргументов, подтверждаю.

Пользовался gnuplot-ом пару лет. За это время понял, что 1) да, если раскурить многостраничный мануал, можно заставить его хоть варить кофе, но 2) внутренние возможности скриптования очень ограничены, любая автоматизация даётся огромной ценой. Например, в языке нет циклов.

Остроту проблемы можно смягчить, если генерировать скрипт, например, из питона — но не легче ли тогда сразу оттуда же и рисовать? Питоновским скриптом можно прочитать экзотический формат (скажем, HDF), gnuplot понимает только текст и простые бинари.

Короче говоря, пользование gnuplot-ом неоправданно усложнено. Есть matplotlib, он гораздо удобнее.

Zeta_Gundam ()
Ответ на: комментарий от unanimous

А ещё gnuplot делает человеко-читаемый eps. Это бесценно, когда через десяток лет пролюблены исходные данные для картинки, а поменять шрифты или обозначения надо.

Вот с функциями двух переменных в gnuplot'е всё не слишком хорошо. Но для этого есть GMT, который, конечно, укурен наглухо, зато эталон концепции unix-way в вакууме.

JaM ()
Ответ на: комментарий от Evgueni

Не везде требуется автоматизация. Бывает, нужно просто проверить, действительно ли в файле такая страшная ломаная вместо гладкой кривой.

Zeta_Gundam ()
Ответ на: комментарий от Zeta_Gundam

Например, в языке нет циклов.

Во-первых, есть. Во-вторых, нахрен не нужно, использовал один раз в жизни для рисунка с кучей панелей. Проще и удобнее использовать переменные окружения и цикл делать из того же баша, тем более для gnuplot'овских картинок надо и постобработку делать (bounding box правильно поставить, например).

JaM ()
Ответ на: комментарий от JaM

Во-первых, есть.

Я помню, там есть for внутри plot, а какие еще? Чур без извращений с reread() :)

цикл делать из того же баша

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

Zeta_Gundam ()
Ответ на: комментарий от Zeta_Gundam

Это нужно для воспроизведения результата, иначе оно не шибко разумно. Я знаю, что это сложно и сам многократно делал «уникальные» графики для статьи или презентации о чём потом долго и безутешно жалел почти каждый раз.

Для быстрой же проверки GUI мешает ещё сильнее.

Evgueni ★★★★★ ()
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от Zeta_Gundam

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

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

Evgueni ★★★★★ ()
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от Zeta_Gundam
Syntax:
       do for <iteration-spec> {
            <commands>
            <commands>
       }

Ввели, правда, недавно.

Gnuplot - НЕ скриптовый язык, в том-то и прелесть. Это описание элементов картинки, а не последовательности действий, поэтому удобнее и логичнее параметризовывать это описание и менять параметры снаружи из какого-нибудь скрипта.

JaM ()
Ответ на: комментарий от JaM

И правда. Спасибо, не знал.

Это описание элементов картинки, а не последовательности действий

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

Zeta_Gundam ()
Ответ на: комментарий от Evgueni

Есть мнение, что такого рода графики (которые создаются с использованием GUI) не нужны от слова совсем, так как автоматизация в этом случае множится на ноль.

Может ещё предложишь пользователям origin, xmgrace и т.п. отказаться от GUI и перейти на CLI интерфейс.

anonymous ()
Ответ на: комментарий от Zeta_Gundam

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

Подозреваю, так сложилось исторически. Изначально сделали установку параметров графика через set и дальнейший plot, а потом уже наворачивали вокруг этого всё остальное. В результате синтаксис потихоньку превращается в кашу, но обратная совместимость остаётся.

От CLI-рисовалки с декларативным описанием и приятными структурами данных я бы и сам не отказался )

JaM ()
Ответ на: комментарий от TwisteR

Смотрел это KST. Выглядит достаточно неплохо. У него есть киллер-фича, отсутствующая в Gnuplot и Octave: на графике можно проводить курсорные измерения как в осциллографе.

DarthVadimius ★★ ()
Ответ на: комментарий от Zeta_Gundam

Это легко делается через интерактивный режим gnuplot/Octave/python. Я обычно использую для этого Octave. Требуется всего 2 команды: dlmread, а затем plot

DarthVadimius ★★ ()
Ответ на: комментарий от anonymous

Лучше не тратить время на LabPlot, а сразу разобраться с Gnuplot, Python+Matplotlib, Octave и т.п. (что больше понравится). Gnuplot не полностью консольный. У него имеется графическое окно, в котором можно проводить некоторые манипуляции над графиком. Касаемо форматов файлов, все они принимают данные в CSV. формат скрипта, которые строит график у всех разный.

DarthVadimius ★★ ()

Питон всё портит...протухнет

MKuznetsov ★★★★★ ()
Ответ на: комментарий от DarthVadimius

Не осилил как в гнуплоте можно реализовать простейшие диаграммы с временной осью. Ну вот например есть данные:

                   Date, Parameter1,  ParameterN
21-Aug-2016 07:00:13.00,  130017450,       0.001
21-Aug-2016 07:00:14.00,  100012474,       
21-Aug-2016 08:00:02.00,    9013221,       0.013
21-Aug-2016 08:10:11.00,   31050001,       0.002
21-Aug-2016 10:10:00.01,           ,       0.001
21-Aug-2016 12:13:14.77,  200000910,       0.003
21-Aug-2016 11:12:14.77,  150000001,       0.002



Как вот можно просто скормить это гнуплоту, чтобы метки на оси времени распределялись пропорционально, каждый график имел собственную шкалу значений для каждого из N параметров? Казалось бы типовой случай, а примеров мне что-то не попадалось. Возможно это как-то можно реализовать, но биться головой об гнуплот каждый раз когда захочется простейший график получить как-то не вдохновляет. А если ещё вдруг захочется сделать это красиво - то становится вообще непонятно зачем вы советуете изучать гнуплот.
anonymous ()
Ответ на: комментарий от anonymous
set term qt
nc = "`awk -F, 'NR == 1 { print NF; exit }' data.dat`"
set xdata time
set timefmt "%d-%b-%Y %H:%M:%.3S"
set xtics rotate
set multiplot layout nc-1,1 columnsfirst
do for [i=2:nc] {
if(i!=nc) {set format x ""} else {set format x "%d-%b-%Y\n%H:%M:.3%S"}
set lmargin at screen 0.15
plot 'data.dat' u 1:i w lp
unset multiplot
pause mouse
anonymous ()
Ответ на: комментарий от greenman

Скажите, почему линукс-новости всегда выглядят как какой-то журнал аспирантов, которым нехер делать?

anonymous ()
Ответ на: комментарий от DarthVadimius

У него есть киллер-фича

Одна из основных - он очень быстрый из интерактивных программ. У меня спокойно переваривал миллионы отсчётов, где Octave+gnuplot еле двигались. Хотя сейчас уже и у Octave есть собственная быстрая рисовался.

dinn ★★★★★ ()
Ответ на: комментарий от anonymous

Насколько я помню, labplot изначально и делался студентом для своих нужд, так что сейчас уже точно как минимум аспирантом.

dinn ★★★★★ ()
Ответ на: комментарий от anonymous

После plot закрывающая скобка }

Ага, и ещё 'set datafile separator ",«' что бы оно не совсем фигню рисовало. Но заметь, всё равно получилось два отдельных графика, а не график с двумя кривыми в разном масштабе, что потребует отдельного секаса, отсутствуют подписи из заголовка столбцов, последняя точка установлена в правильном месте, но сам график идёт сначала в в последнюю по времени точку, а потом возвращается в прошлое, в 11:12 что средствами гнуплота вообще непобедимо. И всё это надо описывать ручками на каком-то уникальном, более нигде не применяемом, языке, а результирующая картинка выглядит так, как будто древние люди рисовали её кишками животных на стене пещеры.

anonymous ()
Ответ на: комментарий от anonymous

Ну да. Это как пользователям exel перейти на R.

Evgueni ★★★★★ ()
Ответ на: комментарий от DarthVadimius

на графике можно проводить курсорные измерения как в осциллографе.

А зачем это, если есть непосредственный доступ к данным?

Evgueni ★★★★★ ()
Ответ на: комментарий от anonymous

Конечно, если подстраиваться под данные, а не наоборот, с gnuplot'ом приходится долго корячиться. Но есть такая область применения, где gnuplot просто идеален. По работе мне нужно делать отчеты с графиками, у меня есть перловый скрипт, который формирует из исходных данных файлы данных и скрипты для gnuplot, и за секунду создается от 1 до 500 файлов EPS, в каждом из которых от одной до 50 кривых. Другой скрипт создает файл LaTeX и вставляет туда это всё с подписями, остается только вставить примечания - и вуаля, отчет готов. Gnuplot хорош именно для автоматизации, а если нужно построить отдельный график - тут уж на вкус и цвет.

anonymous ()
Ответ на: комментарий от Zeta_Gundam

Че правда программирование без циклов? А вам не кажется, что кто-то немного издевается таким образом над людьми с ограниченными умственными способностями? ;) не переходя на личности это делает

anonymous ()
Ответ на: комментарий от anonymous

Может ещё предложишь пользователям origin, xmgrace и т.п. отказаться от GUI и перейти на CLI интерфейс.

Собсна, да. Я так и сделал, жалею только о том, что тратил время на эти бестолковые гуёвые костыли.

Axon ★★★★★ ()
Ответ на: комментарий от anonymous

Конечно, если подстраиваться под данные, а не наоборот, с gnuplot'ом приходится долго корячиться.

Так пример-то совершенно типовой, нарочито тривиальный. Отсчёты по шкале времени, в csv с заголовками. Типовые задачи вообще не должны никаких усилий.

anonymous ()
Ответ на: комментарий от anonymous

а если нужно построить отдельный график - тут уж на вкус и цвет

В случае отдельного графика всё решается заготовкой скрипта, в который подставляем нужные данные. Если совсем по-быстрому нужно посмотреть, что внутри файла с данными, то это решается в 2 команды в интерактивном режиме. Python вообще через Matplotlib умеет подписывать и масштабировать оси через графическое окно, в котором строится график.

DarthVadimius ★★ ()
Ответ на: комментарий от Evgueni

У меня бывают ситуации, что я увидел интересный пик на графике и хочу на месте установить где, он находится. Курсорами это делается быстрее. Поэтому такой функции в Octave и Gnuplot мне не хватает. Но и без курсоров найти интересующую точку на графике тоже возможно. Также сказывается привычка к работе с оборудованием, где аналогичная функция есть.

DarthVadimius ★★ ()
Ответ на: комментарий от Axon

Не всегда задача сводится только к построению графика - это скорее окончательная цель, до которой идёт долгая предварительная стадия, почти всегда с графиками надо ещё поработать, различные преобразования, масштабирование, сравнение с аналитическими функциями.

anonymous ()
Ответ на: комментарий от anonymous

Угу и именно эта стадия нуждается в GUI ещё меньше, чем собственно построение графиков.

Evgueni ★★★★★ ()
Ответ на: комментарий от DarthVadimius

Дурные привычки конечно тяжело изживать. Понимаю. Обычно они ещё и самые любимые :(

Evgueni ★★★★★ ()
Ответ на: комментарий от anonymous

Gnuplot хорош именно для автоматизации, а если
По работе мне нужно делать отчеты с графиками, у меня есть >перловый скрипт, который формирует из исходных данных >файлы данных и скрипты для gnuplot, и за секунду создается >от 1 до 500 файлов EPS

Для автоматизации тут используется не gnuplot а perl. Если бы в perl'е была нативная библиотека для рисования графиков, вы бы стали заморачиваться с генерацией отдельного скрипта для gnuplot, вместо простого использования этой библиотеки? Сомневаюсь...

Если решать ту же задачу средствами python'a, то в нем есть нативная библиотека для рисования графиков. И поэтому использовать gnuplot никому в голову не приходит.

anonymous ()
Ответ на: комментарий от greenman

Как оно по сравнению с OriginPro? Умеет строить publication-ready графики? А то у меня до gnuplot не доходят руки вообще никак.

И почему у них сайт такой полудохлый? Документация только для 1.x

knovich ()
Последнее исправление: knovich (всего исправлений: 1)
Ответ на: комментарий от anonymous

почти всегда с графиками надо ещё поработать, различные преобразования, масштабирование, сравнение с аналитическими функциями.

И вот именно на этой стадии всякие ориджин сотоварищи сосут особенно глубоко. А уж если нужно пройтись сложным анализом по массиву данных, то без нормального скриптового языка вообще делать нечего.

Axon ★★★★★ ()
Ответ на: комментарий от Axon

И вот именно на этой стадии...

Ты точно пользовался ориджином?

greenman ★★★★★ ()
Последнее исправление: greenman (всего исправлений: 1)
Ответ на: комментарий от greenman

Ты точно пользовался ориджином?

Точно.

Axon ★★★★★ ()
Ответ на: комментарий от anonymous

Если бы в perl'е была нативная библиотека для рисования графиков

А её разве нет? А если найду?

gnuplot используют потому, что он даёт вменяемые результаты при относительно разумных временных и интеллектуальных затратах. Иными словами эта результат задачи минимизации. Правда экстремум в этом случае таки скорее локальный.

Evgueni ★★★★★ ()
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от anonymous

а результирующая картинка выглядит так, как будто древние люди рисовали её кишками животных на стене пещеры.

http://www.gnuplotting.org/

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.