Динамическое построение и обновление гистограмм с помощью JFreeChart - PullRequest
1 голос
/ 13 марта 2010

У меня есть поток входящих данных, которые я хотел бы построить с помощью простой гистограммы. Я не знаю диапазон значений, правильное разрешение или ширину бина для гистограммы.

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

Есть ли простой способ сделать это с помощью JFreeChart или некоторой альтернативной библиотеки диаграмм, или мне придется написать здесь свой собственный класс?

Ответы [ 2 ]

3 голосов
/ 13 марта 2010

Мне кажется, у вас классический сценарий MVC . Ваша диаграмма - это представление, и ваш контроллер будет координировать восстановление этого представления на основе вашей модели.

Таким образом, вы должны построить свою модель, отражающую поступающие данные, и контроллер будет заново генерировать диаграмму на основании этого. Следовательно, контроллер может определить, следует ли изменить существующую диаграмму или полностью перестроить ее на основе новых требований. Реализация диаграммы (представление) не подходит для хранения динамически изменяющихся структур данных.

2 голосов
/ 14 марта 2010

Прежде чем вызывать addObservation(), вы должны убедиться, что значение поместится в какой-то бин; используйте addBin() соответственно. Когда диаграмма перерисовывается, ячейки автоматически изменяют размер, чтобы заполнить область графика. Если это нежелательное поведение, соответствующий XYBarRenderer может быть расширен. Если вам нужно удалить контейнеры, вы должны использовать removeAllBins(). Это делает предложение Брайана Агнью MVC еще более убедительным.

Для справки: пример показывает эффект динамического добавления серии XY. Это может дать вам представление о том, как происходят обновления.

...