2012-09-28 37 views
3

我想在PrimeFaces 3.4的折線圖上使用擴展器atttribute。 我需要使用擴展器來格式化帶有日期/時間值的x軸。這樣做沒有擴展是不可取的,因爲有太多的數據點,如果我使用默認的PF lineChart屬性,標籤就會被覆蓋。 當我設置如下所示的代碼時,我得到一個沒有顯示值的x軸;我所能看到的只是X軸。請參閱圖片瞭解更多詳情。我該如何設置,以便x軸以hh:mm格式顯示時間?Primefaces&jqplot - 顯示軸上的日期

Chart Displayed

XHTML代碼

<script type="text/javascript" src="#{request.contextPath}/js/plugins/jqplot.dateAxisRenderer.min.js"></script> 
<script type="text/javascript" src="#{request.contextPath}/js/plugins/jqplot.canvasAxisTickRenderer.min.js"></script> 
<script type="text/javascript"> 
function loginRateChartExt() { 
    this.cfg.axes = { 
    yaxis: { 
    numberTicks: 10, 
    label: 'Logins per minute ->', 
    labelRenderer: $.jqplot.CanvasAxisLabelRenderer, 
    labelOptions: { fontFamily: 'Verdana', fontSize: '8pt' }, 
    }, 
    xaxis: { 
    renderer: $.jqplot.DateAxisRenderer, 
    rendererOptions: { tickRenderer:$.jqplot.CanvasAxisTickRenderer }, 
    tickOptions: { formatString:'%H:%M' }, 
    label: 'Time of day ->', 
    labelRenderer: $.jqplot.CanvasAxisLabelRenderer, 
    labelOptions: { fontFamily: 'Verdana', fontSize: '8pt' } 
    } 
    }; 
} 
</script> 
<p:lineChart id="loginRateChart" value="#{loginRateBean.chartModel}" extender="loginRateChartExt" /> 

bean代碼

for(int i = 0; i < workerBean.getSize(); i++) { // worker bean has the data 
    for (String key : workerBean.getValueKeys()) { // each key refers to a series 
    // chartSeriesMap is a map that contains all the series 
    // workerBean.getKeyAt(i) returns Date 
    // workerBean.getValueAt(i, key) returns a Number 
    chartSeriesMap.get(key).set(workerBean.getKeyAt(i), workerBean.getValueAt(i, key).floatValue()); 
    } 
} 
for (String string : workerBean.getValueKeys()) { 
chartModel.addSeries(chartSeriesMap.get(string)); 
} 

回答

0

添加min屬性至擴展似乎與顯示解決問題。我在另一個關於stackoverflow的問題上看到了這一點(下面的鏈接)。有人知道這是否是解決方法?

jqPlot DateAxis tickInterval not working