Javascript p:折线图不使用日期轴和刻度间隔进行打印

Javascript p:折线图不使用日期轴和刻度间隔进行打印,javascript,primefaces,jqplot,linechart,Javascript,Primefaces,Jqplot,Linechart,我看到了一些关于这个论点的其他帖子,看到了,但是我无法让我的代码正常工作 托管bean: public void loadGraphic() { linearModel = new CartesianChartModel(); LineChartSeries series = new LineChartSeries(); Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, 2013); cal.set(

我看到了一些关于这个论点的其他帖子,看到了,但是我无法让我的代码正常工作

托管bean:

public void loadGraphic()
{
  linearModel = new CartesianChartModel();
  LineChartSeries series = new LineChartSeries();

  Calendar cal = Calendar.getInstance();
  cal.set(Calendar.YEAR, 2013);
  cal.set(Calendar.MONTH, 10);
  cal.set(Calendar.DAY_OF_MONTH, 19);
  cal.set(Calendar.HOUR_OF_DAY, 2);
  cal.set(Calendar.MINUTE, 33);
  cal.set(Calendar.SECOND, 47);

  minX = new Timestamp(cal.getTimeInMillis());
  minY = new Double("1.44");
  maxY = new Double("1.829");

  measures = new ArrayList<TriggerGraphicalData>();
  measures.add(new TriggerGraphicalData(new Timestamp(cal.getTimeInMillis()), new Double("1.72")));
  cal.set(Calendar.HOUR_OF_DAY, 2);
  cal.set(Calendar.MINUTE, 48);
  cal.set(Calendar.SECOND, 59);
  measures.add(new TriggerGraphicalData(new Timestamp(cal.getTimeInMillis()), new Double("1.735")));
  cal.set(Calendar.HOUR_OF_DAY, 3);
  cal.set(Calendar.MINUTE, 11);
  cal.set(Calendar.SECOND, 02);
  measures.add(new TriggerGraphicalData(new Timestamp(cal.getTimeInMillis()), new Double("1.44")));
  cal.set(Calendar.HOUR_OF_DAY, 3);
  cal.set(Calendar.MINUTE, 12);
  cal.set(Calendar.SECOND, 04);
  measures.add(new TriggerGraphicalData(new Timestamp(cal.getTimeInMillis()), new Double("1.69")));
  cal.set(Calendar.HOUR_OF_DAY, 5);
  cal.set(Calendar.MINUTE, 30);
  cal.set(Calendar.SECOND, 00);
  measures.add(new TriggerGraphicalData(new Timestamp(cal.getTimeInMillis()), new Double("1.803")));
  cal.set(Calendar.HOUR_OF_DAY, 9);
  cal.set(Calendar.MINUTE, 00);
  cal.set(Calendar.SECOND, 25);
  measures.add(new TriggerGraphicalData(new Timestamp(cal.getTimeInMillis()), new Double("1.829")));
  cal.set(Calendar.HOUR_OF_DAY, 9);
  cal.set(Calendar.MINUTE, 00);
  cal.set(Calendar.SECOND, 27);
  measures.add(new TriggerGraphicalData(new Timestamp(cal.getTimeInMillis()), new Double("1.729")));

  int seconds = 28;
  for (int i = 0; i < 30; i++, seconds++)
  {
    cal.set(Calendar.SECOND, seconds);
    measures.add(new TriggerGraphicalData(new Timestamp(cal.getTimeInMillis()),
      new Double("1.75")));
  }

  cal.set(Calendar.MINUTE, 1);
  seconds = 0;
  for (int i = 0; i < 60; i++, seconds++)
  {
    cal.set(Calendar.SECOND, seconds);
    measures.add(new TriggerGraphicalData(new Timestamp(cal.getTimeInMillis()),
      new Double("1.69")));
  }

  for (TriggerGraphicalData measure : measures)
  {
    // series.set(TimeUtil.getSecondInDayRelative(measure.getxValue(), minX),
    // measure.getyValue());
    series.set(measure.getxValue(), measure.getyValue());
  }

  maxX = new Timestamp(cal.getTimeInMillis());

  linearModel.addSeries(series);
}
XHTML页面:

<p:lineChart value="#{monitoringData.linearModel}" 
  style="height: 400px; width: 99%" legendPosition="ne" 
  zoom="true" animate="true" yaxisAngle="45" 
  seriesColors="3399FF, FF9900, 3399FF, FF9900, 3399FF, FF9900" 
  rendered="#{not empty monitoringData.measures}" extender="chartExtender">
  <f:convertDateTime pattern="dd-MM-yyyy HH:mm:ss" />
  <script type="text/javascript" src="#{request.contextPath}/js/jqplot.canvasAxisTickRenderer.js" />
  <script type="text/javascript" src="#{request.contextPath}/js/jqplot.categoryAxisRenderer.js" />
  <script type="text/javascript" src="#{request.contextPath}/js/jqplot.dateAxisRenderer.js" />
  <script type="text/javascript">
    function chartExtender() {
      console.log(this.cfg);
      var millis = this.cfg.categories;
      var minX = millis[0];
      var maxX = millis[millis.length - 1];
      console.log(minX);
      console.log(maxX);

      this.cfg.axes = {
        xaxis: {
          renderer: $.jqplot.DateAxisRenderer,
          min: minX,
          max: maxX,
          //autoscale: true,
          tickRenderer: $.jqplot.CanvasAxisTickRenderer,
          tickOptions: { 
            formatString: '%H:%M:%S', 
            tickInterval: '3600000',
            angle: 60
          }
        },
        yaxis: {
          renderer: $.jqplot.LinearAxisRenderer,
          tickRenderer:$.jqplot.CanvasAxisTickRenderer,
          tickOptions: {
            formatString: '%.4f',
            angle: 45
          }
        }
      }
      //this.cfg.axes.xaxis.ticks = this.cfg.categories;
    }
  </script>
</p:lineChart>
1在没有扩展器的情况下,绘图是正确绘制的,但x轴记号彼此重叠。这是一个示例,我可以有200多个点的图表。

2使用未指定最小/最大值的扩展器,绘图正确绘制,但x轴上的记号消失。x轴的起点和终点只有两个相同的值。

3与案例2类似,加上扩展器中通过javascript指定的最小/最大值,勾号正确绘制,也可以缩放,但没有打印渲染。

4与案例3类似,当行this.cfg.axes.xaxis.ticks=this.cfg.categories取消注释时,它会打断x轴标记,并且不会渲染绘图。

提前谢谢