如何动态设置highcharts的最大值

时间:2014-04-13 20:04:45

标签: javascript highcharts

我正在尝试将xAxis设置为highcharts,以使max等于今天的日期,而min等于7天。因此,即使给定日期没有数据点,它也将始终显示7个日期。

数据正确显示,只有最小值和最大值才能显示。

这是脚本 - http://jsfiddle.net/Jv82q/1/ - 通知第3行被注释掉,当取消注释它会破坏图表。不知道为什么。

 var max = new Date().getTime();
var min = new Date().getTime();
// min.setDate(min.getDate()-7);
$(function () { 
$('#container').highcharts({
    chart: {
        type: 'areaspline'
    },
    title: {
        text: 'Weight History'
    },
    credits: {
        enabled: false
    },
    xAxis: {
        type: 'datetime',
        dateTimeLabelFormats: {
            day: '%e %b'
        },
        min: min,
        max: max
    },
    yAxis: {
        title: {
            text: 'Weight'
        },
        min: 20,
        max: 400
    },
    series: [{
        name: 'Daily Weigh In',
        color: '#7ec152',
        data: [[Date.UTC(2014,  3, 13), 400],[Date.UTC(2014,  3, 14), 300],[Date.UTC(2014,  3, 15), 300],[Date.UTC(2014,  3, 16), 300],[Date.UTC(2014,  3, 18), 300],[Date.UTC(2014,  3, 19), 300],[Date.UTC(2014,  3, 20), 300]        ]
    }]
});
});

1 个答案:

答案 0 :(得分:0)

Date.getTime()返回时间戳,而不是Date对象。然后你试图setDate min,但它在你的JS控制台中返回错误:

Uncaught TypeError: undefined is not a function 

以下是如何实现这一目标的示例:http://jsfiddle.net/Jv82q/4/

var today = new Date().getTime();

...

// axis options: 
min: today - 7 * 24 * 3600 * 1000,
max: today