2013-02-01 65 views

回答

3

您可以使用循环计算每组中的平均值,然后转换位置。显然你应该也需要关于刻度宽度的信息。

http://jsfiddle.net/rfwd9/2/

var i = 0, 
      avg, 
      yAxis = chart.yAxis[0], 
      r = chart.renderer, 
      tickWidth = chart.plotWidth/chart.series[0].data.length, 
      startX = chart.plotLeft, 
      len = chart.series[0].data.length, 
      seriesCount = chart.series.length; 


     for (i = 0; i < len; i++) { 
      avg = 0; 
      $.each(chart.series, function (j, serie) { 
       avg += serie.data[i].y; 
      }); 
      avg = Math.floor(avg/seriesCount); 

      r.path(['M', startX, chart.plotHeight - yAxis.translate(avg), 'L', startX + tickWidth, chart.plotHeight - yAxis.translate(avg)]) 
       .attr({ 
       'stroke-width': 2, 
       stroke: 'red' 
      }) 
       .add(); 
      startX = startX + tickWidth; 
     } 
+0

谢谢Sebestian!这是我正在寻找的。 – user428900

+0

请注意,如果图表调整大小,则线条不会重新绘制并最终位于错误的位置。 – Chris