Сделал плоттер для анализа численных данных (начал в 2016). Да, не такой как остальные.

Это не клон gnuplot (хотя и называется GP), задачи отличаются. Раньше я использовал gnuplot, но после какого-то обновления не смог из-за медлительности на больших наборах данных и неудобного UI. А необходимые мне функции приходилось делать через жуткие и неудобные костыли.

Типичные задачи у меня для примера вот такие. Едем на е-самокате и записывает параметры с контроллера (отлаживаю контроллер BLDC) и отдельно записываем gps-трек. Таких данных может быть записано много, с разным набором выводимых параметров. И еще нужно синхронизироваться с gps-треком чтобы смотреть параметры и знать в какой момент это было. Может быть захочется сравнить разные проезды между собой.

Для быстрого анализа есть много хотелок к UI. Нужно наличие множества осей, slave-осей (не знаю как назвать, нигде похожего не видел), простых преобразований. Нужно много вариантов масштабирования, а не одно выделение прямоугольной области. И есть еще задачи для real-time построений.

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

Наверно можно было бы сделать все на python + matplotlib + tk. Но мне проще на C + SDL и так больше fps в тяжелых случаях.

Что он может:

  • Построение графиков из текстовых файлов с заголовком (или CSV).
    pm.lu_iD@A;pm.lu_iQ@A;pm.flux_H;pm.lu_wS_rpm@rpm;
    -0.000;-0.131;8;0.00;
    -0.000;-0.131;8;0.00;
    -0.000;-0.131;8;0.00;

    или из бинарных плоских файлов (блоки float).
  • Читать конфигурацию в которой можно задать чтение нескольких файлов одновременно, задать (или сгенерировать) много страниц с разными наборами фигур из разных файлов. Это удобно при регулярном анализе данных одинаковой структуры. И что-то еще.
  • Много осей на которые можно разбрасывать фигуры как из конфига так и из UI. Операции с масштабами осей.
  • Строить графики в real-time из нескольких асинхронных источников.
  • Простые опреации с данными, масштабы, вычитание, первые разности/суммы и т.п. Почти все операции могут работать в real-time.
  • Экспорт картинки в PNG и SVG.
  • Такие мелочи как fuzzy-поиск по спискам в UI, для тяжелых конфигураций с сотнями графиков.

Известные проблемы:

  • Кривоватый формат конфига, используются только числовые идентификаторы. Не все возможности доступны из конфига.
  • UI сделан врукопашную, без тулкита. От того его может быть сложно поддерживать и добавлять что-то новое.

https://sourceforge.net/projects/graph-plotter/

Говорите ваше «ненужно».








 ,






URL записи