Я хотел бы сделать гистограмму JFreeChart, которая поддерживает постоянное количество ящиков при масштабировании и выводе. Например, возможно, увеличенный вылет через 12 лет, и каждый год будет 1 бит. Когда вы увеличите немного больше, вы увидите 12 месяцев, и каждый месяц будет бит. Масштабирование еще больше, возможно, есть 1 бит на каждый день, каждый час и т. Д. Они не должны быть такими чистыми размерами бункера, но вы получаете идею.Гистограмма JFreeChart с постоянным количеством ящиков при масштабировании
Я использую HistogramDataset.addSeries, чтобы добавить данные на гистограмму. Параметр bins
- это количество ящиков для всего набора и не учитывает масштабирование.
Я заметил, что могу использовать ChartPanel и переопределять его метод zoom. Здесь я мог бы потенциально изменить количество ящиков. Тем не менее, мне сложно определить, где я могу изменить количество ящиков и их изменение.
EDIT:
Есть несколько частей этой проблемы, что я заинтересован в том, что я считаю, имеет решающее значение для решения:
- Как лучше сказать, что пользователь в увеличенном виде. Мой текущий подход заключается в переопределении
zoom
. - Как определить границы, на которые пользователь увеличил масштаб. Я все еще не уверен, как это сделать.
- Как изменить количество ячеек в модели данных, чтобы масштабирование поддерживало то же количество , показанное.
Для некоторого контекста, моя конечная цель заключается в создании финансового контроля в стиле Google: Google Finance style control for Java?
Я не уверен, я полностью понимаю, что вы предлагаете здесь. Я мог бы добавить еще один элемент управления, но я не хочу, если мне это не нужно. Зачем пользователю делать 2 вещи (изменять масштаб и менять поле со списком), когда они могут просто сделать 1 (увеличение)? Предположим, что я показываю гистограмму с данными за период с 2001 по 2011 год с 10 бункерами, а затем с апреля 2003 года по июль 2003 года пользователь увеличит масштаб. В результате набора данных будет отображаться только 1 бит (если есть).Я хотел бы разбить его на 10 * новых * бункеров. Я не уверен, как любой из этих примеров поможет мне обработать этот масштаб и решить проблему. Может быть, я что-то упустил. – Luke
Нет, ваше понимание верное; примеры относятся только к альтернативе, которую я предлагаю. В любом случае вам нужно будет обновить модель, независимо от того, контролируется ли это обновление комбо или жест увеличения. Сначала я разработал базовую функциональность, а затем разоблачил ее, используя сначала более простой подход. – trashgod