Java graph / chart library в реальном времени? [закрытый]
Был более ранний поток на Java graph или Chart library, где JFreeChart был найден довольно хорошим, но, как указано в его FAQ, он не предназначен для рендеринга в реальном времени.
Может ли кто-нибудь порекомендовать сравнимую библиотеку, поддерживающую рендеринг в реальном времени? Просто некоторые базовые XY-рендеринги - например, получение сигнала напряжения от системы сбора данных и построение его по мере поступления (время по оси x, напряжение по оси y).
12 ответов:
Что на самом деле говорится в FAQ, так это то, что JFreeChart не поддерживает жесткие графики в реальном времени, что означает, что диаграмма не обновляется при поступлении новых данных или через детерминированный интервал после него. Однако я обнаружил, что JFreeChart можно использовать для тех приложений, которые вы описываете. Вы можете достичь 1 обновления в секунду, что прекрасно. Я не думаю, что человеческий глаз может следить за чем-то быстрее, чем это.
Если вы хотите что-то большее, чем это, я сомневаюсь, что вы найдете что-нибудь в Java (или даже на другом языке). Операционные системы, которые мы используем, не предназначены для реального времени. Вы не можете гарантировать, что они ответят в течение минимального интервала после события. Тесная интеграция с аппаратным драйвером будет необходима для отображения более 1-10 кадров в секунду.
Однако, если вы создадите приложение правильно, ОС будет реагировать быстро, и ваше приложение может легко отображать график "в реальном времени" (то есть график, который обновляется один раз в секунду). Просто не используйте ваше заявление о закрытии клапана в аварийной ситуации!
Только что наткнулся на описание того, как использовать библиотеку диаграмм visualvm. Выглядит очень мило!
Взгляните наобработку -это среда с открытым исходным кодом, основанная на java, предназначенная для всех видов анимированных визуализаций.
Ну, если это должна быть Java, то вы можете посмотреть на них.
- Java Real-Time Systems (включает демо-версию приложения для построения графиков как в реальном времени, так и не в реальном времени, а также версию JavaFX)
- разработка Java-приложений в реальном времени с использованием многоядерных систем
- ускоренные графики задач реального времени (Эта технология работает на Linux, но разработка может быть выполнена на любой платформе, поддерживающей Java 5.0 и Eclipse.)
- JavaFX - Демонстрация Круговой Диаграммы
Вы, вероятно, уже нашли хорошее решение, но если нет, то я недавно провел некоторую работу над платформой для создания 2D-диаграмм, позволяющей выполнять обновления в реальном времени со скоростью более 50 изменений в секунду.
Первоначальное намерение состояло в том, чтобы имитировать внешний вид графического регистратора в области прокрутки веб-страницы, но я считаю, что этот подход имеет более широкое применение.Демо можно найти в Chart Recorder Demo, если кто-то заинтересован.
Внешний вид является определяется шаблоном (www.journeylog.co.uk/chart/templates/chartRecorder.xml). одной из особенностей является возможность указать рисунок либо на сервере,либо в браузере с помощью ExplorerCanvas.
Если кто-то заинтересован, я могу начать проект с открытым исходным кодом для него.
Достаточно быстрым для реального времени являетсяswtchart , по крайней мере, по моему опыту. Даже с большим количеством данных. Не пугайтесь номера версии, да, это довольно новый API, но я использую его успешно и без проблем.
Как следует из названия, он основан на SWT , который использует собственный рисунок ОС. Кроме того, он выполняет некоторые умные оптимизации для быстрого рисования, например, не рисует все точки в наборе данных (см. Пример фрагмента большого ряда).
Это кажется хорошим кандидатом.
Http://jchart2d.sourceforge.net/
Демо:
JCCkit очень хорошие библиотеки, которые пристреливают меньше памяти, особенно в среду : https://sourceforge.net/projects/jcckit .
Занимает менее
Вы можете покопаться в источнике для NetBeans. Профилировщик делает в реальном масштабе времени построение графиков различных вещей, таких как использование памяти.
SWT XYGraph может отображать данные с помощью вашего собственного поставщика данных, поэтому вы можете создать поставщика данных в реальном времени, предоставляющего данные в реальном времени. С SWTChart и JFreeChart, вы должны подготовить весь массив для него.
На этот вопрос хорошо ответили в: построение графов Java в реальном времени
Поскольку VisualVM включает API построения диаграмм, а этот API включен в JDK, у вас есть хороший/быстрый API построения диаграмм.