Ось домена JFreeChart с несколькими (но последовательными) рядами данных - PullRequest
0 голосов
/ 04 августа 2011

Я пытаюсь отобразить график, который будет иметь разные цвета в определенные периоды времени.

Единственный способ, которым мне удалось это сделать, - это нарезать начальные серии данных на части и добавить их в соответствующиепорядок в наборе данных для построения.Например, если цвет графика по умолчанию синий, и я хочу выделить два периода времени (например, красный цвет), у меня будет набор данных, состоящий из 5 рядов данных:

dataset.add (синий) исходныйplot

dataset.add (красный) выделение 1

dataset.add (синий) начальный сюжет продолжение

dataset.add (красное) выделение 2

dataset.add (синий) начальный график продолжение

Упорядочены точки на оси домена, которые соединяют каждую из 5 частей набора данных.Однако у меня есть проблема с осью домена.Каждая точка в ряду данных создается соответствующим образом (я полагаю, поскольку выравнивание оси домена прекрасно работает для наборов данных, имеющих одинаковые начальную и конечную точки)

milliseconds = ts.getTime() + (ts.getNanos() / 1000000);
date = new Date(milliseconds);
intYear = date.getYear() + 1900;
year = new Year(intYear);
intMonth = date.getMonth();
month = new Month(intMonth, year);
intDay = date.getDate();
day = new Day(intDay, month.getMonth(), year.getYear());
hour = new Hour(date.getHours(), day);
minute = new Minute(date.getMinutes(), hour);

tpVal = new TimePeriodValue(minute, watts);
s1.add(tpVal);

Это изображение имеет увеличенную ось доменамногократно.Ось домена находится в диапазоне от 00:00:00 до 23:59:59 http://i.imgur.com/c7TDY.jpg

. Есть ли способ исправить выравнивание оси домена, чтобы график отображался правильно без необходимости увеличенияв

1 Ответ

0 голосов
/ 04 августа 2011

Я нашел «способ» преодоления проблемы.

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

Исходный ряд данных без рубок перекрывается «рубленными» частями, поэтому он вообще не виден. Вот так это выглядит сейчас. http://i.imgur.com/Wc893.jpg

Я полагаю, что проблема была в том, что не было рядов данных, которые охватывали бы каждую точку оси домена от начала (first timePeriodValue 1-го ряда данных) до конца (last timePeriodValue последнего ряда данных ), который испортил autorange () или вызванные методы, которые заботятся о выравнивании оси.

Я хотел бы, чтобы вы знали; может быть, это поможет кому-то еще с подобной проблемой.

Спасибо за предложение оставить исходный ряд данных без изменений.

...