2015-02-10 28 views
2

我正嘗試使用Primefaces 5.1的組件<p:chart>創建折線圖。p:具有日期時間軸的圖表

而且我需要X軸顯示時間。事情是這樣的:

enter image description here

但只是針對舊版本文檔。

我發現了幾件事情,如:

但是在5.1版本有沒有這樣的標記<p:lineChart>,甚至沒有屬性extender=""

我創建基礎上,展示我的圖表:

但是這個例子沒有太大的幫助,因爲它是唯一帶有日期的工作。複雜化爲String。我需要幾個小時。

我不知道是否有人在Primefaces的新版本中創建了類似的東西。

編輯:

搜索多一點,我發現這個話題:

我使用的示例中提到這個問題,我可以使它發揮作用。

我可以看到,當它是一個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}" />