簡體   English   中英

highcharts圖中的導航器不起作用

[英]Navigator in highcharts graph does not work

圖表的其余部分正常運行,並且當我更改時間刻度時,導航器會更新,但是調整導航器的大小並向左/向右滾動不會執行任何操作(不會更新圖形)。

在此處輸入圖片說明

為了初始化圖形,我這樣做:

Highcharts.stockChart('highchartLineChart', {
    title: {
        text: 'MyTitle'
    },
    subtitle: {
        text: ''
    },
    xAxis: {
        title: {
            enabled: true,
            text: 'Time (days)'
        },
        type: 'datetime',
    },
    yAxis: {
        title: {
            text: 'Value'
        },
    },
    navigator: {
        enabled: true,
        series: {
            id: 'navigator',
        }
    },
    series: []
});

然后,我有一個ajax方法來填充它,如下所示:

var highchartLineData = [];

for (var i = 0; i < result.length; i++) {

    var parsedDate = new Date(result[i].MyDate.match(/\d+/)[0] * 1);

    var lineItem = {
        x: parsedDate,
        y: parseFloat(result[i].Value)
    };

    highchartLineData.push(lineItem);
}

 $('#highchartLineChart').highcharts().addSeries({
     name: "My Chart",
     data: highchartLineData
 });

然后我嘗試添加此內容,只是嘗試進行各種嘗試來修復它

var nav = $('#highchartLineChart').highcharts().get('navigator');
nav.setData(highchartLineData);
$('#highchartLineChart').highcharts().xAxis[0].setExtremes();

但是它沒有用。 盡管可以左右拖動導航器,但不會更新任何內容。 有時它會破壞它,並且頂部圖形消失,但是如果按1m 3m等,它將返回。

控制台中沒有錯誤。 有任何想法嗎?

在您的代碼中,執行以下操作:

var parsedDate = new Date(result[i].MyDate.match(/\d+/)[0] * 1);

var lineItem = {
    x: parsedDate,
    y: parseFloat(result[i].Value)
};

x設置為Date對象。

根據Highcharts API的x值(對於一行),該值應以毫秒為單位。

x:數字

點的x值。 對於日期時間軸,X值是自1970年以來的時間戳(以毫秒為單位)。

因此,如果您改為執行以下操作:

var lineItem = {
    x: result[i].MyDate.match(/\d+/)[0] * 1,
    y: parseFloat(result[i].Value)
};

它應該工作。 (假設result[i].MyDate.match(/\\d+/)[0] * 1為您提供時間,以毫秒為單位。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM