Highchart数据不以0开头给出错误

时间:2015-10-19 10:20:02

标签: javascript graph highcharts

我最近在HighStock遇到了一个奇怪的问题。

首先,这是我的代码http://jsfiddle.net/woon123/br0e8mkw/

$(document).ready(function () {
    Highcharts.setOptions({
        global: {
            useUTC: false
        }
    });
    $('#analytics_line').highcharts('StockChart', {
        credits: {
            enabled: false
        },
        title: {
            text: 'Analytics of Deals'
        },
        subtitle: {
            text: 'View Count and Redemption Count'
        },
        rangeSelector: {
            allButtonsEnabled: true,
            buttons: [{
                type: 'month',
                count: 3,
                text: 'Day',
                dataGrouping: {
                    forced: true,
                    units: [
                        ['day', [1]]
                    ]
                }
            }, {
                type: 'year',
                count: 1,
                text: 'Week',
                dataGrouping: {
                    forced: true,
                    units: [
                        ['week', [1]]
                    ]
                }
            }],
            buttonTheme: {
                width: 60
            },
        },

        yAxis: {
            floor: 0,
            title: {
                text: 'Number'
            }
        },

        plotOptions: {
            dataLabels: {
                visible: true
            },
            series: {
                compare: 'value'
            }
        },
        tooltip: {
            pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b><br/>',
            valueDecimals: 2
        },
        legend: {
            enabled: true,
            align: 'right',
            backgroundColor: '#FCFFC5',
            borderColor: 'black',
            borderWidth: 2,
            layout: 'vertical',
            verticalAlign: 'top',
            y: 100,
            shadow: true
        },

        series: [{
            id: "First Graph",
            name: "First Graph",
            pointStart: 1444060800000.0,
            pointInterval: 24 * 3600 * 1000,
            data: [20, 23, 23, 23, 23, 23, 23, 23, 23, 23],
        }, {
            id: "Second Graph",
            name: "Second Graph",
            pointStart: 1444060800000.0,
            pointInterval: 24 * 3600 * 1000,
            data: [9, 12, 16, 16, 16, 16, 16, 16, 16, 16],
        }, ]
    }, function (chart) {

        // apply the date pickers
        setTimeout(function () {
            $('input.highcharts-range-selector', $(chart.container).parent())
                .datepicker();
        }, 0);
    });

    // Set the datepicker's date format
    $.datepicker.setDefaults({
        dateFormat: 'yy-mm-dd',
        onSelect: function () {
            this.onchange();
            this.onblur();
        }
    });
});

在这种情况下,根据数据,第一图表假设在第二图表之上。比较系列时,First Graph值始终高于Second Graph。

但是,绘制的图形实际上会导致First Graph低于第二个图形,但是当您将鼠标悬停在线条上时,它会给出正确的值。

此外,First Graph假设从20开始,但是你可以看到它从0开始,Y轴值也是错误的(0-2.5-5)

但是,所有这些错误都可以通过在数据开头放置0来解决。

对于第一个图的情况,它是[0,20,23,23,23,23,23,23,23,23,23],第二个图是[0,9,12,16,16, 16,16,16,16,16,16]。

任何人都可以建议为什么会这样,并且可能提供一个解决方案,允许我的数据以正整数开始而不是0

1 个答案:

答案 0 :(得分:2)

取出plotOptions,series

上的比较
series: {
    compare: 'value'
}

小提琴:http://jsfiddle.net/br0e8mkw/2/

来自API:http://api.highcharts.com/highstock#plotOptions.series.compare

  

将系列的值与可见范围中的第一个值进行比较。 y轴将显示百分比或绝对变化,具体取决于比较是否设置为&#34;百分比&#34;或&#34;价值&#34;。当这适用于多个系列时,它允许将系列的开发相互比较。默认为undefined。