2012-09-12 2 views
0

Я хочу построить линейный график, в котором данные поступают динамически. Скажем, для каждой секунды у меня есть новый набор значений, которые должны быть построены в пределах существующего графика, содержащего предыдущие значения. График временных рядов предлагает такой механизм, но он должен иметь время как один из параметров. Но время для меня не является переменной. Как продолжать обновлять этот линейный график с непрерывными входящими данными.Как построить график, используя jfreechart, когда данные идут непрерывно

+0

Можете ли вы уточнить очевидное противоречие между _every second_ и _time, а не переменной? Измените свой вопрос, чтобы включить [sscce] (http://sscce.org/), который показывает репрезентативные данные и выбранный вами тип диаграммы. – trashgod

ответ

1

Вы можете

  1. Передает измененное значение для каждой новой точки данных. В качестве альтернативы вы можете посмотреть исходный код DynamicTimeSeriesCollection, чтобы увидеть, как они делают его динамичным. Это приводит к:

  2. Кажется, что если вы создаете свой собственный тип данных, который расширяет org.jfree.data.general.Series класса, то на каких-либо изменениях вы смогли бы назвать fireSeriesChanged, который будет инициировать обновление графика.

  3. Поскольку я читаю библиотеку, я вижу больше вариантов. Пробовал ли вы XYSeries, у него есть метод под названием add(), я проверил источник, вызываемый этим методом, вызывает уведомление об изменениях. Поэтому использование этого класса должно быть достаточно для вашего дела.

+0

его штраф, что я добавлю новые данные в серии XY, используя метод add(). Но я сомневаюсь, нужно ли нам каждый раз добавлять XY-серии в коллекцию XYseries всякий раз, когда мы модифицируем данные в серии XY. Если мы это сделаем, это порождает ошибку, говорящую, что серия XY уже существует с заданным именем. Итак, что нужно сделать, чтобы продолжать добавлять данные в серии XY, а затем обновлять существующие серии XY в серии XY seriescollection. – chaitu

+0

@chaitu Я не думаю, что вам нужно добавить 'XYSeries' в' XYSeriesCollection'. Любые изменения в 'XYSeries' должны распространяться с использованием механизма [Obeserver] (http://www.oodesign.com/observer-pattern.html). –

Смежные вопросы