Я рассмотрел различные варианты построения функций (или других типов графиков) в интерактивном окне. Я в основном использую wxWidgets, но я был бы открыт для любых других «интерфейсов».
wxPlot: Не обновлялся с 2006 года. Но это был бы хороший кандидат, если бы он был ...
wxMathPlot: Очень новые, незрелые, мало функций (все еще активны?)
libgraph: Устаревший, без повторной обработки, только 2D и выводит только изображения.
koolplot: Слишком просто, нет контроля над созданным окном.
EasyBMP: Очень простой, вывод только изображений.
plotutils: только командная строка.
участок: API C и C++ почти не поддерживаются. Фактически на этом основан wxPlot. Также может быть подходящим кандидатом, если мы обновим интерфейсы C и C++.
Любые комментарии? Идеи?
Спасибо!





Может ли wxChart быть вариантом? Однако я сам им не пользовался, и похоже, что он давно не обновлялся.
Просто идея: используйте Python как встраиваемый язык сценариев для построения графиков. У Python множество графические библиотеки.
если по сравнению с запись данных в файлы и использование системного вызова для запуска скриптов py, что удобнее и быстрее?
@zhangxaochen, это зависит от того, что вы делаете.
OpenGL. Однако это БУДЕТ сложно и, возможно, переписать колесо. Имейте в виду, что OpenGL - это общая 3D-библиотека, а не конкретная библиотека графиков, но вы можете реализовать построение графиков на ее основе.
Проголосовали против, потому что я не думаю, что рекомендация использовать свой собственный вопрос с рекомендацией библиотеки на самом деле не дает ответа на него.
В свое время я обнаружил, что игровая библиотека Allegro проста в использовании. Стоит взглянуть.
Мы используем древнюю версию ComponentOne Диаграмма.
AntiGrain Geometry (AGG). http://www.antigrain.com/. Это библиотека 2D векторной графики с открытым исходным кодом. Это отдельная библиотека без дополнительных зависимостей. Имеет хорошую документацию. Библиотека построения графиков Python matplotlib использует AGG в качестве одного из бэкэндов.
AGG - это механизм рендеринга, а не библиотека для построения графиков. Использование его для построения графиков потребует повторной реализации matplotlib поверх него.
Взгляните на wxArt2d, это полный фреймворк для 2D-редактирования и построения графиков. Дополнительные примеры см. В скриншоты.
Некоторые интересные особенности:
Привет! Я разработчик wxMathPlot! Проект активен: мне просто потребовалось много времени, чтобы получить новую версию, потому что код нужно было частично переписать, чтобы ввести новые функции. Обратите внимание на новую версию 0.1.0: это большое улучшение по сравнению со старыми версиями. Во всяком случае, он не обеспечивает 3D (даже если я всегда об этом думаю ...).
умеет ли он строить график в «реальном времени»? (или почти в реальном времени)? Для ясности - я хочу иметь возможность обновлять данные из источника и рисовать по мере поступления новых точек.
Я программно предоставляю необходимые входные файлы исполняемому файлу GNUPlot и вызываю его с помощью функции system(). Это подходит для моей ситуации, так как я хочу только визуализировать свои данные во время исследования. Но если вы хотите, чтобы функция построения графиков была интегрирована в ваш исполняемый файл, возможно, это не для вас :)
Взгляните на Gnuplot iostream: единую библиотеку заголовков, обеспечивающую интуитивно понятный доступ к функциям Gnuplot прямо из вашего кода C++. Я люблю это!
Я все про КОРЕНЬ для этих нужд. Однако это довольно сложно, если вам не нужна вся аналитическая поддержка.
Я знаю, что это старый комментарий, но спасибо, что указали на ROOT. Я не слышал об этом, и это будет очень полезно!
Мне очень неприятно видеть хорошие библиотеки, выпущенные под GNU, это буквально делает их бесполезными.
@metablaster Я знаю и широко использовал ROOT и TMVA в свое время, и они очень удобны, если вы используете систему на основе nix. С тех пор, как я перешел на Windows, я с трудом могу его построить, не говоря уже о том, чтобы скомпилировать любой из моих собственных кодов. На самом деле это не имеет значения, потому что я не работаю с CERN, но время от времени мне просто не хватает удобства.
MathGL имеет много типов графиков, интерфейс C / Fortran и базовый анализ данных
вы можете использовать ДИСЛИН
это довольно аккуратно!
Они требуют оплаты библиотеки.
Хоть эта нить старая но золотая. QCustomPlot также очень рекомендуется для дополнения этого списка.
Если вы не против встраивания интерпретатора Python, вы получите множество других преимуществ от наличия языка сценариев в своем приложении, а также доступа к библиотекам, с которыми вы связались. +1