JfreeChart: прокрутите график по горизонтали и посмотрите старые значения [дубликаты]

Возможный дубликат:
Использование JFreeChart для отображения последних изменений временного ряда

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

Я запрограммировал приложение, которое получает информацию в режиме реального времени от беспроводного датчика (n показаний датчика температуры каждую секунду). Для построения этой информации я использую библиотеки JFreeChart, в частности, класс DinamicTimeSeriesCollection.

В соответствии с функциональностью этого класса: «Этот класс предназначен для приложений реального времени, в которых у нас есть возможность довольно быстро добавлять новые данные и отбрасывать самые старые (в зависимости от ваших входных данных)» (получено из JfreeChart: прокрутить XYBarChart по горизонтали - (перевод и навигация диаграммы)), что мне нужно, так это не отбрасывать информацию, которая уже была подготовлена. Я видел, что могу прокручивать график по горизонтали, добавляя JSlider, как показано в вышеупомянутом URL-адресе. Однако я не вижу старые значения (в основном потому, что они были заменены).

Я не уверен, использую ли я правильный класс, есть ли другие библиотеки, такие как JfreeChart, которые делают построение графиков «таким же простым», или даже если есть какой-то трюк или метод для сохранения старых значений.

Большое спасибо за ваше время. Вся возможная помощь будет оценена по достоинству.

С Уважением

Дэйвид


person David Rodenas    schedule 19.07.2012    source источник
comment
Вы также можете просмотреть приведенные здесь примеры.   -  person trashgod    schedule 19.07.2012


Ответы (1)


Хорошим подходом является сохранение значений, получаемых от устройства, в 2D-списке (представляющем координаты x, y) и передача этих точек в JFreeChart для отображения каждый раз при получении нового значения. Что касается панорамирования, вы можете вручную установить окно с помощью JFreeChart.getXYPlot().get[Domain/Range]axis.set[Upper/Lower]Bounds(double value)

person retrohacker    schedule 20.07.2012