2015-05-10 2 views
0

Я использую jqplot через Primefaces и Есть вход в бар диаграммы, как это:Гистограмма с двумя рядами разных дат/значений в диапазоне

Series 1: 
label: "Company 1" 
data: {"01-05-2015": 10, "06-05-2015": 3} 
Series 2: 
label: "Company 2" 
data: {"03-05-2015": 10, "06-05-2015": 3} 

Когда я передать эти данные в BarChartModel, я получил данные ошибочно нарисованы на графике.

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

Series 1: 
label: "Company 1" 
data: {"01-05-2015": 10, *"03-05-2015": 0*, "06-05-2015": 3} 
Series 2: 
label: "Company 2" 
data: { *"01-05-2015": 0* , "03-05-2015": 10, "06-05-2015": 3} 

Уведомление элементы данных между * и *.

Любой совет здесь? (если используется DateAxis помогает?)

ответ

0

У меня была такая же проблема с LinearChartModel, когда я не использовал DateAxis. Как обходной путь, я заполнил свою серию всеми возможными данными, а затем переупорядочил список. Urg!

Должен также работать с BarChartModel.

Использование DateAxis вам просто нужно добавить свою ось даты с отметкой времени, как это:

serie.set(new Date().getTime(), new Double(123)); 

или это

serie.set("2015-09-08", new Double(123)); 

Поместите DateAxis в вашем LineChartModel, как это:

DateAxis axis = new DateAxis("Data da inspeção"); 
linearModel.setZoom(true); 
linearModel.getAxes().put(AxisType.X, axis); 
linearModel.setExtender("linhaSetor"); 

И отформатируйте свою дату в extender.js:

function linhaSetor() { 
    this.cfg.axes.xaxis.tickOptions = { 
     show : true, 
     angle : 45, 
     formatString : '%d/%m/%y %Hh' 
    }; 
} 

Вам даже не нужно вводить данные в порядок.

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