2015-02-10 2 views
2

Я пытаюсь создать линейную диаграмму, используя компонент <p:chart> из Прайса 5.1.p: диаграмма с осью DateTime

И мне нужно, чтобы ось X отображала время. Что-то вроде этого:

enter image description here

Но только против документации старой версии.

Я нашел несколько вещей, как:

Но в версии 5.1 нет такого тега <p:lineChart>, и даже не атрибут extender="".

Я создал схему, основанную на витрине:

Но этот пример не помогает, потому что она работает только с датой. И усложнять - это String. Мне нужны часы.

Интересно, кто-то уже создал нечто похожее в более новых версиях Prime.

EDIT:

Поиск немного больше, я нашел эту тему:

Я использовал пример упомянул, и я мог заставить его работать.

Что я могу видеть, когда это DateAxis требуется для установки axis.setMax(). В конце выглядит следующим образом:

enter image description here

Он работал, как мне нужно, но две вещи, которые я не понимал:

Первое: Причина требуется установить axis.setMax().

Второй: Что это за шаблон, используемый в axis.setTickFormat("%H:%#M:%S")?

ответ

10

Хорошо, теперь я нашел приемлемое решение.

Первоначальная проблема с диаграммой была axis.setMax().

И шаблон, используемый в axis.setTickFormat является:

Модель:

private void createDateModel() { 
    dateModel = new LineChartModel(); 
    LineChartSeries series1 = new LineChartSeries(); 
    series1.setLabel("Series 1"); 
    series1.set("2014-01-01 00:10:50", 51); 
    series1.set("2014-01-01 00:10:51", 22); 
    series1.set("2014-01-01 00:10:52", 65); 
    series1.set("2014-01-01 00:10:53", 35); 
    dateModel.addSeries(series1); 
    dateModel.getAxis(AxisType.Y).setLabel("Values"); 
    DateAxis axis = new DateAxis("Dates"); 
    axis.setTickAngle(-50); 
    axis.setMax("2014-01-01 00:10:56"); 
    axis.setTickFormat("%H:%#M:%S"); 
    dateModel.getAxes().put(AxisType.X, axis); 
} 

И диаграмма:

<p:chart type="line" model="#{controller.dateModel}" /> 
Смежные вопросы