Библиотека графиков / диаграмм Java в реальном времени? [java, charts, graph, real-time]
Ранее была ветка в библиотеке графиков или диаграмм Java, где JFreeChart оказался неплохо, но, как указано в разделе часто задаваемых вопросов >, он не предназначен для рендеринга в реальном времени.
Может ли кто-нибудь порекомендовать сопоставимую библиотеку, поддерживающую рендеринг в реальном времени? Просто базовый рендеринг xy — например, получение сигнала напряжения от системы сбора данных и построение графика по мере его поступления (время по оси x, напряжение по оси y).
java charts graph real-time
person Joonas Pulakka schedule 17.02.2009 source источник
Ответы (12)
arrow_upward
9
arrow_downward
Фактически в FAQ говорится, что JFreeChart не поддерживает создание диаграмм в реальном времени, а это означает, что диаграмма не обновляется при поступлении новых данных или через детерминированный интервал после них.
Если вы хотите чего-то большего, я сомневаюсь, что вы найдете что-нибудь на Java (или даже на другом языке). Операционные системы, которые мы используем, не предназначены для работы в режиме реального времени. У вас не может быть гарантии, что они ответят в течение минимального интервала времени после события. Чтобы показывать более 1-10 кадров в секунду, потребуется тесная интеграция с драйвером оборудования.
Однако, если вы правильно спроектируете свое приложение, ОС будет быстро реагировать, и ваше приложение может легко отображать график «в реальном времени» (то есть график, который обновляется раз в секунду). Только не используйте свое приложение для отключения клапана в аварийной ситуации!
person kgiannakakis
schedule 17. 02.2009
arrow_upward
7
arrow_downward
http://www.live-graph.org/
person Jacek Ławrynowicz schedule 17.02.2009
arrow_upward
6
arrow_downward
Просто наткнулся на описание того, как использовать библиотеку диаграмм visualvm . Выглядит очень красиво!
person weberste schedule 23.11.2010
5
arrow_downward
взгляните на processing — это среда с открытым исходным кодом на основе Java, разработанная для всех видов анимированных визуализаций.
person Rahel Lüthy
schedule 17. 02.2009
arrow_upward
5
arrow_downward
Что ж, если это должна быть Java, вы можете изучить их.
- Java Real-Time Systems (включает демонстрацию как в реальном времени, так и не в реальном времени) timem и JavaFX-версия графического приложения)
- Разработка приложений Java в реальном времени с использованием многоядерных систем
- Ускоренные графики задач в реальном времени ( Эта технология работает в Linux, но разработка может осуществляться на любой платформе, поддерживающей Java 5.0 и Eclipse.)
- JavaFX — A Демонстрация круговой диаграммы
person Adeel Ansari schedule 17.02.2009
arrow_upward
5
arrow_downward
Вы, вероятно, уже нашли хорошее решение, но если нет, то я недавно поработал над структурой для создания 2D-диаграмм, позволяющей обновлять данные в реальном времени со скоростью более 50 изменений в секунду.
Первоначальное намерение состояло в том, чтобы имитировать внешний вид регистратора диаграмм в области прокрутки веб-страницы, но я считаю, что этот подход имеет более широкое применение.
Демонстрацию можно найти на странице Демонстрация средства записи диаграмм, если кому-то интересно.
Внешний вид определяется шаблоном (www.journeylog.co.uk/chart/templates/chartRecorder.xml). Одна из функций — возможность указать рисунок на сервере или в браузере с помощью ExplorerCanvas.
Если кому-то интересно, я мог бы начать для этого проект с открытым исходным кодом.
person Alasdair Scott schedule 08.12.2009
arrow_upward
4
arrow_downward
По моему опыту, достаточно быстро для работы в реальном времени. Даже с большим количеством данных. Не пугайтесь номера версии, да, это довольно новый API, но я успешно использую его без проблем.
Как следует из названия, он основан на SWT, который использует отрисовку собственной ОС. Также он выполняет некоторые хитроумные оптимизации для быстрого рисования, например не рисование всех точек в наборе данных (см. Фрагмент примера больших серий).
person the.duckman schedule 17.02.2009
arrow_upward
2
arrow_downward
это кажется хорошим кандидатом.
http://jchart2d.sourceforge.net/
демо:
http://jchart2d.sourceforge.net/applet.shtml
person jobobo
arrow_upward
2
arrow_downward
JCCkit — отличная библиотека, которая требует меньше памяти, особенно во встроенной среде: https://sourceforge. net/projects/jcckit .
Занимает менее ‹100 кб.
person CJ_world schedule 16.08.2012
arrow_upward
1
arrow_downward
Вы можете покопаться в источниках NetBeans. Профилировщик в реальном времени составляет графики различных вещей, таких как использование памяти.
person TofuBeer schedule 17.02.2009
arrow_upward
1
arrow_downward
SWT XYGraph может отображать данные с помощью вашего собственного поставщика данных, поэтому вы можете создать поставщик данных в реальном времени, предоставляющий данные в реальном времени. С SWTChart и JFreeChart вам нужно подготовить для него весь массив.
person xihui

arrow_upward
0
arrow_downward
На этот вопрос хорошо дан ответ: Построение графиков в реальном времени Java
Поскольку VisualVM включает API диаграмм, и этот API включен в JDK, у вас есть хороший / быстрый API диаграмм.
person java4africa schedule 14.10.2013
В режиме реального времени Java graph / chart library? [закрытый]
был более ранний поток на Java graph или Chart library, где JFreeChart оказался довольно хорошим,
может ли кто-нибудь порекомендовать сопоставимую библиотеку, поддерживающую рендеринг в реальном времени? Просто некоторый базовый XY-рендеринг — например, получение сигнала напряжения от системы сбора данных и построение его по мере поступления (время по оси x, напряжение по оси y).
В FAQ фактически говорится, что JFreeChart не поддерживает жесткие графики в реальном времени, что означает, что диаграмма не обновляется при поступлении новых данных или на детерминированном интервале после него. Однако я обнаружил, что JFreeChart можно использовать для приложений, которые вы описываете. Вы можете достичь 1 обновления в секунду, что нормально. Я не думаю, что человеческий глаз может следить за чем-то быстрее, чем это.
Если вы хотите что-то больше, чем это, я сомневаюсь, что вы найдете что-нибудь в Java (или даже на другом языке). Операционные системы, которые мы используем, не предназначены для реального времени. Вы не можете гарантировать, что они ответят через минимальный интервал после события. Для отображения более 1-10 кадров в секунду потребуется тесная интеграция с аппаратным драйвером.
однако, если вы правильно спроектируете свое приложение, ОС будет быстро реагировать, и ваше приложение может легко отображать график «в реальном времени» (то есть график, который обновляется один раз в секунду). Просто не используйте свое приложение, чтобы закрыть клапан в чрезвычайной ситуации!