Java graph / chart library в реальном времени? [закрытый]


Был более ранний поток на Java graph или Chart library, где JFreeChart был найден довольно хорошим, но, как указано в его FAQ, он не предназначен для рендеринга в реальном времени.

Может ли кто-нибудь порекомендовать сравнимую библиотеку, поддерживающую рендеринг в реальном времени? Просто некоторые базовые XY-рендеринги - например, получение сигнала напряжения от системы сбора данных и построение его по мере поступления (время по оси x, напряжение по оси y).

12 29

12 ответов:

Что на самом деле говорится в FAQ, так это то, что JFreeChart не поддерживает жесткие графики в реальном времени, что означает, что диаграмма не обновляется при поступлении новых данных или через детерминированный интервал после него. Однако я обнаружил, что JFreeChart можно использовать для тех приложений, которые вы описываете. Вы можете достичь 1 обновления в секунду, что прекрасно. Я не думаю, что человеческий глаз может следить за чем-то быстрее, чем это.

Если вы хотите что-то большее, чем это, я сомневаюсь, что вы найдете что-нибудь в Java (или даже на другом языке). Операционные системы, которые мы используем, не предназначены для реального времени. Вы не можете гарантировать, что они ответят в течение минимального интервала после события. Тесная интеграция с аппаратным драйвером будет необходима для отображения более 1-10 кадров в секунду.

Однако, если вы создадите приложение правильно, ОС будет реагировать быстро, и ваше приложение может легко отображать график "в реальном времени" (то есть график, который обновляется один раз в секунду). Просто не используйте ваше заявление о закрытии клапана в аварийной ситуации!

Только что наткнулся на описание того, как использовать библиотеку диаграмм visualvm. Выглядит очень мило!

Взгляните наобработку -это среда с открытым исходным кодом, основанная на java, предназначенная для всех видов анимированных визуализаций.

Ну, если это должна быть Java, то вы можете посмотреть на них.

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

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

Демо можно найти в Chart Recorder Demo, если кто-то заинтересован.

Внешний вид является определяется шаблоном (www.journeylog.co.uk/chart/templates/chartRecorder.xml). одной из особенностей является возможность указать рисунок либо на сервере,либо в браузере с помощью ExplorerCanvas.

Если кто-то заинтересован, я могу начать проект с открытым исходным кодом для него.

Достаточно быстрым для реального времени являетсяswtchart , по крайней мере, по моему опыту. Даже с большим количеством данных. Не пугайтесь номера версии, да, это довольно новый API, но я использую его успешно и без проблем.

Как следует из названия, он основан на SWT , который использует собственный рисунок ОС. Кроме того, он выполняет некоторые умные оптимизации для быстрого рисования, например, не рисует все точки в наборе данных (см. Пример фрагмента большого ряда).

Это кажется хорошим кандидатом.

Http://jchart2d.sourceforge.net/

Демо:

Http://jchart2d.sourceforge.net/applet.shtml

JCCkit очень хорошие библиотеки, которые пристреливают меньше памяти, особенно в среду : https://sourceforge.net/projects/jcckit .

Занимает менее

Вы можете покопаться в источнике для NetBeans. Профилировщик делает в реальном масштабе времени построение графиков различных вещей, таких как использование памяти.

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

На этот вопрос хорошо ответили в: построение графов Java в реальном времени

Поскольку VisualVM включает API построения диаграмм, а этот API включен в JDK, у вас есть хороший/быстрый API построения диаграмм.