Разное

Построение графиков java: java — Построить точечный график

15.01.1990

Библиотека графиков / диаграмм 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 не поддерживает создание диаграмм в реальном времени, а это означает, что диаграмма не обновляется при поступлении новых данных или через детерминированный интервал после них.

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

Если вы хотите чего-то большего, я сомневаюсь, что вы найдете что-нибудь на 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


arrow_upward
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   

schedule 19.07.2011


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   

schedule 07. 07.2012


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 оказался довольно хорошим,

но, as указано в FAQ, он не предназначен для рендеринга в реальном времени.

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


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

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

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