How to set weekly range in X Axis of High Chart?

岁酱吖の 提交于 2020-01-07 09:34:45

问题


I have a Chart where I need to set X axis to a weekly range. Starting from January - march.How can i set the X interval to 7 days range?

What I need is the points to appear every 7 days time period. Tired a few ways but it doesn't seem to work. I have attached what I've done so far.

Highcharts.chart('container', {
    title: {
        text: 'Fee Collected'
    },

    subtitle: {
        text: 'Actual Vs Budget'
    },

    yAxis: {
        title: {
            text: '%'
        },
         min: 80,
         max:120   
    },
xAxis: {
        type: 'datetime',
        labels: {
            style: {
                fontFamily: 'Tahoma'
            },
            rotation: -45
        },
        tickInterval: 24 * 3600 * 1000
    },
    legend: {
        layout: 'vertical',
        align: 'right',
        verticalAlign: 'middle'
    },

    plotOptions: {
        series: {
            pointStart: 0
        }
    },

    series: [{
        data: [88,90,88,96,97,105,106,110,118],
        pointStart: Date.UTC(2010, 0, 1),
        pointInterval: 24 * 3600 * 1000 // one day
    }]

});
#container {
	min-width: 310px;
	max-width: 800px;
	height: 400px;
	margin: 0 auto
}
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>

<div id="container"></div>

回答1:


tickPositioner and tickInterval: 24 * 3600 * 1000 * 7 for seven days

Highcharts.chart('container', {
  title: {
    text: 'Fee Collected'
  },

  subtitle: {
    text: 'Actual Vs Budget'
  },

  yAxis: {
    title: {
      text: '%'
    },
    min: 80,
    max: 120
  },
  xAxis: {
    type: 'datetime',
    labels: {
      style: {
        fontFamily: 'Tahoma'
      },
      rotation: -45
    },
    tickInterval: 24 * 3600 * 1000 * 7,
    /*seven days*/
    tickPositioner: function(min, max) {
      var interval = this.options.tickInterval,
        ticks = [],
        count = 0;

      while (min < max) {
        ticks.push(min);
        min += interval;
        count++;
      }

      ticks.info = {
        unitName: 'day',
        count: 7,
        higherRanks: {},
        totalRange: interval * count
      }


      return ticks;
    }

  },
  legend: {
    layout: 'vertical',
    align: 'right',
    verticalAlign: 'middle'
  },

  plotOptions: {
    series: {
      pointStart: 0
    }
  },

  series: [{
    data: [88, 90, 88, 96, 97, 105, 106, 110, 118],
    pointStart: Date.UTC(2009, 0, 1),
    pointInterval: 24 * 3600 * 1000 * 7 // seven days
  }]

});
#container {
  min-width: 310px;
  max-width: 800px;
  height: 400px;
  margin: 0 auto
}
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>

<div id="container"></div>


来源:https://stackoverflow.com/questions/42739200/how-to-set-weekly-range-in-x-axis-of-high-chart

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!