2013-02-12 53 views

回答

0

您可以使用帶有j軸的CategoryAxisRenderer和用於x軸的DateAxisRenderer的primefaces折線圖。

你CartesianChartModel應該建立這樣的:

對於相數p(INT):

chartModel.set(startTimestamp,p); 
chartModel.set(endTimestamp,p); 

對於primefaces線型圖,你需要創建你設置渲染器軸的延伸, y軸刻度(相位名稱數組),x軸刻度間隔,minX,maxX以及x軸刻度的格式字符串。

function extender() { 
       this.cfg.axes = { 
        xaxis: { 
         renderer: $.jqplot.DateAxisRenderer, 
         rendererOptions: { 
          tickRenderer: $.jqplot.CanvasAxisTickRenderer 
         }, 
         tickOptions: { 
          formatString: '%H:%M', 
          formatter: myFormatter 
         }, 
         min: myMinXTimestamp, 
         max: myMaxXTimestamp, 
         tickInterval: 3600000, //1 hour 
         autoscale: false 
        }, 
        yaxis: { 
         renderer: $.jqplot.CategoryAxisRenderer, 
         ticks: ['Pahse 1','Phase 2','Phase 3'], 
         labelRenderer: $.jqplot.CanvasAxisLabelRenderer 
        } 
       }; 
       this.cfg.highlighter = { 
        show: true, 
        formatString: '%s' 
       }; 
      } 

定義myFormatter功能:

function myFormatter(format, val) { 
      return $.jsDate.strftime(val, format); 
     }; 

最後你的線型圖組件:

<p:lineChart id="chart" value="#{chartModel}" extender="extender"/> 
相關問題