Highcharts混合列/样条曲线,错误的xaxis标签

Highcharts混合列/样条曲线,错误的xaxis标签,highcharts,Highcharts,我正在尝试完成一个图表,在这个图表中,我报告了一个月内的每日产量以及其他几个基于每日的系列。图表总是设置为满刻度,这意味着我总是显示一个月内的所有天,即使我没有这些天的值,无论是什么原因。在每个月的第一天,我将上个月的图表显示为报告 我已经安排好让你有个主意。我一直在努力解决的问题是,无论我做什么,Highcharts都会忽略我,并在x轴上显示错误的标签。因此,一天从2开始,贯穿整个月直到最后一天,以1结束 这是我的图表的代码: $(function() { var chart = ne

我正在尝试完成一个图表,在这个图表中,我报告了一个月内的每日产量以及其他几个基于每日的系列。图表总是设置为满刻度,这意味着我总是显示一个月内的所有天,即使我没有这些天的值,无论是什么原因。在每个月的第一天,我将上个月的图表显示为报告

我已经安排好让你有个主意。我一直在努力解决的问题是,无论我做什么,Highcharts都会忽略我,并在x轴上显示错误的标签。因此,一天从2开始,贯穿整个月直到最后一天,以1结束

这是我的图表的代码:

$(function() {
    var chart = new Highcharts.Chart({
            chart: {
                renderTo: 'tab-month-graph',
                zoomType: 'xy'
            },
            title: {
                text: 'Daily - August 2015'
            },
            xAxis: {
                type: 'datetime',
                tickInterval: 24 * 3600 * 1000,
                labels: {
                    align: 'center',
                    text: 'Giorni',
                    style: {
                        fontSize: '10px',
                        fontFamily: 'Verdana, sans-serif'
                    }
                },
                dateTimeLabelFormats: {
                    day: '%e'
                }
            },
            yAxis: [{ // Primary yAxis
                title: {
                    text: 'Produzione giornaliera',
                    style: {
                        color: Highcharts.getOptions().colors[1]
                    }
                }
            },
            { // Secondary yAxis
                title: {
                    text: 'PR giornaliero',
                    style: {
                        color: Highcharts.getOptions().colors[0]
                    }
                },
                min: 0,
                startOnTick: false,
                opposite: true
            }],
            legend: {
                enabled: false
            },
            series: [{
                 name: 'Prod.',
                 type: 'column',
                 data: [[1438466230000, 4603.36],[1438552630000, 4264.92],[1438639030000, 3108.05],[1438725430000, 2047.03],[1438811830000, 2270.39],[1438898230000, 2258.2],[1438984630000, 3971.95],[1439071030000, 3784.45],[1439157430000, 3674.53],[1439243830000, 3131.95],[1439330230000, 1963.13],[1439416630000, 3333.52],[1439503030000, 4161.8],[1439589430000, 4408.59],[1439675830000, 2968.83],[1439762230000, 2808.05],[1439848630000, 4439.77],[1439935020000, 3746.48],[1440021430000, 4980],[1440107830000, 3683.91],[1440194230000, 4480.78],[1440280630000, 4406.48],[1440367030000, 4518.98],[1440453430000, 4492.73],[1440539830000, 3924.14],[1440626230000, 4062.89],[1440712630000, 3225.47],[1440799030000, 3213.75],[1440885430000, 4631.95],[1440971830000, 4471.17],[1441058230000, 4223.91]],
                 color: '#89CE7F',
                 dataLabels: {
                        enabled: true,
                        rotation: -90,
                        color: '#000000',
                        align: 'right',
                        x: 4,
                        y: 10,
                        style: {
                            fontSize: '11px',
                            fontFamily: 'Verdana, sans-serif',
                            textShadow: '0 0 3px black'
                            }
                        }
                }, 
                {
                    name: 'PR',
                    type: 'spline',
                    yAxis: 1,
                    lineWidth: 0,
                    marker: {
                        radius: 6
                    },
                    data: [[1438466230000, 73.36],[1438552630000, 75.08],[1438639030000, 57.54],[1438725430000, 38.85],[1438811830000, 39.14],[1438898230000, 63.78],[1438984630000, 76.03],[1439071030000, 75.78],[1439157430000, 77.61],[1439243830000, 79.74],[1439330230000, 77.35],[1439416630000, 73.98],[1439503030000, 75.79]],
                    color: '#AA0000',
                    tooltip: {
                        valueSuffix: ' %'
                    }
                },
                {
                    name: 'PR Cont.',
                    type: 'spline',
                    yAxis: 1,
                    lineWidth: 0,
                    marker: {
                        radius: 5,
                        symbol: 'circle'
                    },
                    data: [[1438466230000, 78.84],[1438552630000, 79.85],[1438639030000, 75.16],[1438725430000, 59.15],[1440971830000, 78.5],[1441058230000, 78.45]],
                    color: '#BBBB00',
                    tooltip: {
                        valueSuffix: ' %'
                    }
                } 
                ],
            tooltip: {
                xDateFormat: '%A, %d %B %Y',
                valueSuffix: ' kW',
                shared: true    //  LEGENDA CONDIVISA
            },
            plotOptions: {
                series: {
                    pointStart: Date.UTC(2015, 7, 1),
                    pointRange: 24 * 3600 * 1000
                }
            }
        });
    });
我读了很多关于堆栈溢出的帖子,尝试了很多建议,我甚至尝试了一个类似的问题,但它并没有解决我的问题。
有人能给我指出正确的解决方案吗?

尝试highchart函数上方的函数,并设置xAxis最小值和最大值。 使用第一个时间戳(日期)作为最小值,最后一个时间戳(日期)作为最大值

    $( function () {
                            Highcharts.setOptions( {
                                lang : {
                                    rangeSelectorZoom : ' '
                                },
                                global : {
                                    useUTC : false
                                }
                            } );
                        } );

尝试highchart函数上方的以下函数,并设置xAxis最小值和最大值。 使用第一个时间戳(日期)作为最小值,最后一个时间戳(日期)作为最大值

    $( function () {
                            Highcharts.setOptions( {
                                lang : {
                                    rangeSelectorZoom : ' '
                                },
                                global : {
                                    useUTC : false
                                }
                            } );
                        } );

尝试highchart函数上方的以下函数,并设置xAxis最小值和最大值。 使用第一个时间戳(日期)作为最小值,最后一个时间戳(日期)作为最大值

    $( function () {
                            Highcharts.setOptions( {
                                lang : {
                                    rangeSelectorZoom : ' '
                                },
                                global : {
                                    useUTC : false
                                }
                            } );
                        } );

尝试highchart函数上方的以下函数,并设置xAxis最小值和最大值。 使用第一个时间戳(日期)作为最小值,最后一个时间戳(日期)作为最大值

    $( function () {
                            Highcharts.setOptions( {
                                lang : {
                                    rangeSelectorZoom : ' '
                                },
                                global : {
                                    useUTC : false
                                }
                            } );
                        } );

只是想澄清一下:由于时间(
21:57:10UTC
)的原因,列看起来像是按一天翻译的——这几乎是另一天(没有UTC,GMT+2:00的时间是23:57:10)。一般来说,如果您有每日数据,那么最好使用
00:00:00
,因为这正是日期开始的时间。操作JSON应该没那么难,请参见:

function modify(data) {
    var time;
    data.map(function(e) {
        time = new Date(e[0]);
        time.setUTCHours(0);
        time.setUTCMinutes(0);
        time.setUTCSeconds(0);

        e[0] = time.getTime();
        return e; 
    });
    return data;
}
以及:

演示:

注意:要删除轴上最后一个位置的额外记号,只需设置
xAxis.max


回答评论中的问题:否,
pointInterval
在数据为x-y对时不应使用

澄清一下:栏目看起来像是按一天翻译的,因为那个时间(
21:57:10 UTC
)-几乎是另一天(没有UTC,GMT+2:00是23:57:10)。一般来说,如果您有每日数据,那么最好使用
00:00:00
,因为这正是日期开始的时间。操作JSON应该没那么难,请参见:

function modify(data) {
    var time;
    data.map(function(e) {
        time = new Date(e[0]);
        time.setUTCHours(0);
        time.setUTCMinutes(0);
        time.setUTCSeconds(0);

        e[0] = time.getTime();
        return e; 
    });
    return data;
}
以及:

演示:

注意:要删除轴上最后一个位置的额外记号,只需设置
xAxis.max


回答评论中的问题:否,
pointInterval
在数据为x-y对时不应使用

澄清一下:栏目看起来像是按一天翻译的,因为那个时间(
21:57:10 UTC
)-几乎是另一天(没有UTC,GMT+2:00是23:57:10)。一般来说,如果您有每日数据,那么最好使用
00:00:00
,因为这正是日期开始的时间。操作JSON应该没那么难,请参见:

function modify(data) {
    var time;
    data.map(function(e) {
        time = new Date(e[0]);
        time.setUTCHours(0);
        time.setUTCMinutes(0);
        time.setUTCSeconds(0);

        e[0] = time.getTime();
        return e; 
    });
    return data;
}
以及:

演示:

注意:要删除轴上最后一个位置的额外记号,只需设置
xAxis.max


回答评论中的问题:否,
pointInterval
在数据为x-y对时不应使用

澄清一下:栏目看起来像是按一天翻译的,因为那个时间(
21:57:10 UTC
)-几乎是另一天(没有UTC,GMT+2:00是23:57:10)。一般来说,如果您有每日数据,那么最好使用
00:00:00
,因为这正是日期开始的时间。操作JSON应该没那么难,请参见:

function modify(data) {
    var time;
    data.map(function(e) {
        time = new Date(e[0]);
        time.setUTCHours(0);
        time.setUTCMinutes(0);
        time.setUTCSeconds(0);

        e[0] = time.getTime();
        return e; 
    });
    return data;
}
以及:

演示:

注意:要删除轴上最后一个位置的额外记号,只需设置
xAxis.max



回答评论中的问题:否,
pointInterval
在数据为x-y对时不应使用

我刚刚尝试了你的建议,但没有成功:(我已经尝试了useUTC:false解决方案,但没有成功。奇怪的是,highCharts似乎忽略了我试图更改xAxis值开始的任何内容。例如,不应该指向开始:Date.UTC(2015,7,1)强制高点图表从8月1日开始?我再次查看了您的数据。第一个数据点从“143846630000”开始它的值为GMT:Sat,2015年8月1日21:57:10 GMT您的时区:8/2/2015,3:27:10 AM GMT+5:30,因此它似乎在8月1日星期六21:57开始,但在我的时区中,它从8月2日开始。这可能是它在轴上显示错误标签的原因。请再次检查您是否使用UTC:fa我会在正确的地方用你的代码更新JSFIDLE,至少我希望是这样……好的,完成了。看起来什么都没有改变:'(对于我的时区,您指出的时间戳应该是2015年8月1日23.57我刚刚尝试使用143838720000作为第一个值的时间戳,xAxis上的1就在那里!所以这只是“日期时间”的问题)。至少我们已经找到了处理这个问题的方法…现在我需要一个解决方案。处理所有的时间戳这不是一个好主意,因为它会使生成传递到图表的jSon数组的代码复杂一点。感谢您为我指明了正确的方向!这只是时间戳的问题。我刚刚尝试了您的建议,但没有成功s:(我已经尝试了useUTC:false解决方案,但没有成功。奇怪的是,highCharts似乎忽略了我试图更改xAxis值开始的任何内容。例如,pointStart:Date.UTC(2015,7,1)不应该强制highCharts从8月1日开始吗?我再次查看了您的数据。第一个数据点开始于“143846630000”,其值为GMT:Sat,2015年8月1日2