Highchart-xAxis每周日期可以在给定的一天开始吗?

时间:2018-11-29 10:29:48

标签: charts highcharts

我有一个非常基本的“每周”每周图表。我只需要x轴上的日期即可开始我的第一点的给定日期。我已指定 pointStart:Date.UTC(2018,09,25),但是它显示的是不同月份中的不同星期?如何在x轴上显示给定日期的星期?

$('#container').highcharts({
            chart: {
                type: 'line'
            },
            credits : {
              enabled : false
            },
            title: {
                text: false
            },
            xAxis: {  
                tickInterval:  7 * 24 * 3600 * 1000,
                type: 'datetime',
                startOnTick: true,
                startOfWeek: 0,
                labels: {
                    format: '{value:%d/%m/%Y}',
                    rotation: -45,
                    y: 30,
                    align: 'center'
                } 
            },
            yAxis: {
                min: 0,
                title: {
                    text: 'HH'
                }
            },
            plotOptions: {
                series: {
                    pointStart: Date.UTC(2018, 09, 25),
                    pointInterval: 7 * 24 * 3600 * 1000
                }
            }, 
            series: [
                {
                    name: 'Curva Tardía',
                    data: [18, 27, 36, 36, 10]
                }, {
                    name: 'Curva Temprana',
                    data: [9, 18, 27, 27, 90]
                },{
                    name: 'Curva Real',
                    data: [0, 36, 45, 89, 100] 
                }
            ]
        });

gh

2 个答案:

答案 0 :(得分:1)

容易出错,在Date.UTC中,month是从0开始的索引,这意味着使用09初始化函数意味着将月份设置为10月而不是9月。

通过设置Date.UTC(2018, 08, 25),您将获得期望的到达日期:

$('#container').highcharts({
            chart: {
                type: 'line'
            },
            credits : {
              enabled : false
            },
            title: {
                text: false
            },
            xAxis: {  
                tickInterval:  7 * 24 * 3600 * 1000,
                type: 'datetime',
                startOnTick: true,
                startOfWeek: 0,
                labels: {
                    format: '{value:%d/%m/%Y}',
                    rotation: -45,
                    y: 30,
                    align: 'center'
                } 
            },
            yAxis: {
                min: 0,
                title: {
                    text: 'HH'
                }
            },
            plotOptions: {
                series: {
                    pointStart: Date.UTC(2018, 08, 25),
                    pointInterval: 7 * 24 * 3600 * 1000
                }
            }, 
            series: [
                {
                    name: 'Curva Tardía',
                    data: [18, 27, 36, 36, 10]
                }, {
                    name: 'Curva Temprana',
                    data: [9, 18, 27, 27, 90]
                },{
                    name: 'Curva Real',
                    data: [0, 36, 45, 89, 100] 
                }
            ]
        });
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>

<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>

答案 1 :(得分:1)

您需要使用startOfWeek选项:

xAxis: {
    startOfWeek: 4
}

实时演示:http://jsfiddle.net/BlackLabel/nL4vuz5f/

API:https://api.highcharts.com/highcharts/xAxis.startOfWeek