首页 > 解决方案 > Highchart - xAxis 每周日期可以从给定日期开始吗?

问题描述

我有一个非常基本的“线”每周日期图形。我只需要 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

标签: chartshighcharts

解决方案


容易犯错,in 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>


推荐阅读