title: Highcharts tickPositions problems
body: <p>I have a weekly chart to display data of 3 years in weeks, <br>
  And the chart have 2 XAxis, one show the week number , the other one show the year,<br>
  <a href="http://postimg.org/image/amcgcakoz/" rel="nofollow">Screen Capture of the chart</a><br>
  Both Axis have the same data Length, but different tick Length,<br>
  the Year XAxis label only show on the tick where week number equal to 1<br>
  (I have set offset to the Year Axis, so it not exactly shown below the week number 1)<br>
  <br>
  Now I want to display Year Axis Tick when week number equal to 1 only.<br>
  So I add <b>"tickPositions"</b> with array [0,53,105] <br>(position of week number of those 3 year) to Year Axis,<br>
  but the chart become:<br>
  <a href="http://postimg.org/image/va989ugj9/" rel="nofollow">Screen Capture after adding "tickPositions"</a><br>
  Since I only add 3 tick according to the array, why there are so many ticks on the chart?<br>
  And how can I fix it? Thank you very much! :)<br>
  <br>
  Thanks Sebastian, after I include the plug-in to the page, it show below error:<br>
  Have you seen it before? Thanks!<br>
  Another question, I also have a same chart that show daily data, how can I group date time chart? Thanks!<br>
  Screen Capture of the error__http://postimg.org/image/iqgfspxqt/
  <br>
  <br>
  My Year xAxis code:<br></p>
  
  <pre><code>{
          labels: {
              align: 'left',
              x: 25,
              formatter: function () {
                  var ex = this.axis.getExtremes();
                  if ((ex.max - ex.min) &gt; 30) {
                      if (xCategoriesWeekNum[this.value] == 1)
                          return xCategoriesYear[this.value];
                  }
                  else if (((ex.max - ex.min) &gt; 10)) {
                      if ((xCategoriesWeekNum[this.value] == 1) || ((xCategoriesWeekNum[this.value] % 10) == 0))
                          return xCategoriesYear[this.value];
                  }
                  else {
                      if ((xCategoriesWeekNum[this.value] == 1) || ((xCategoriesWeekNum[this.value] % 5) == 0))
                          return xCategoriesYear[this.value];
                  }
              }
          },
          //offset: 0,
          lineWidth: 0,
          tickLength: 12,
          tickPosition: 'inside',
          tickInterval: 1,
          tickPositions: [0, 53, 105],
          tickPlacement: 'on',
          //tickPositioner: function () {
          //    var ex = this.chart.xAxis[0].getExtremes();
          //    alert(getTickPosition(ex.min, ex.max));
          //    return getTickPosition(ex.min, ex.max);
          //},
          title: {
              text: 'Week Number',
          },
          startOnTick: false,
          endOnTick: false,
          minPadding: 0,
          maxPadding: 0,
      }],
  </code></pre>
  
  <p><br>
  My Week xAxis code:<br></p>
  
  <pre><code>[{
          labels: {
              formatter: function () {
                  var ex = this.axis.getExtremes();
                  if ((ex.max - ex.min) &gt; 30) {
                      if ((xCategoriesWeekNum[this.value] == 1) || (xCategoriesWeekNum[this.value] == 7) || (xCategoriesWeekNum[this.value] == 13) || (xCategoriesWeekNum[this.value] == 19) || (xCategoriesWeekNum[this.value] == 25) || (xCategoriesWeekNum[this.value] == 31) || (xCategoriesWeekNum[this.value] == 37) || (xCategoriesWeekNum[this.value] == 43) || (xCategoriesWeekNum[this.value] == 49)) {
                          return xCategoriesWeekNum[this.value];
                          //if (xCategoriesWeekNum[this.value] == 1)
                          //    return xCategoriesWeekNum[this.value] + '&lt;br&gt;' + xCategoriesYear[this.value];
                          //else
                      }
                  }
                  else {
                      return xCategoriesWeekNum[this.value];
                  }
              }
          },
          tickPixelInterval: $('#' + container).width() / dataLength,
          tickInterval: 1,
  
          showLastLabel: true, 
          startOnTick: false,
          endOnTick: false,
          minPadding: 0,
          maxPadding: 0,
      }
  </code></pre>