Highchart Axis更新/图表重绘

sha*_*aaa 4 highcharts

在我的高图中,在某些时候,我需要更新yAxis的min,max和tickInterval.我尝试了3种方法:

  1. 我尝试了以下代码,但它说"对象#没有menthod'更新'"

    var extremes = chart.yAxis[i].getExtremes();
    chart.yAxis[i].update({
            min: extremes.dataMin * 1.1,
            max: extremes.dataMax * 1.1,
            tickInterval : SomeValue,
        });
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我也尝试了chart.redraw ...使用以下代码

     chart.yAxis[i].min = extremes.dataMin * 1.1;
     chart.yAxis[i].max = extremes.dataMax * 1.1;
     chart.yAxis[i].tickInterval = SomeValue;
     chart.redraw();
    
    Run Code Online (Sandbox Code Playgroud)

    这次它没有显示任何错误,但图表也没有刷新.

  3. 这一次,我尝试更新选项,然后创建一个新的高级图:

    options.yAxis[i].min = extremes.dataMin * 1.1;
    options.yAxis[i].max = extremes.dataMax * 1.1;
    options.yAxis[i].tickInterval = SomeValue;
    chart = new Highcharts.Chart(options);
    
    Run Code Online (Sandbox Code Playgroud)

它这次工作,但我不想创建一个新的高图,我想更新旧的,因为我也在另一种方法中使用它.

请告诉我,这是如何工作的,如果我使用第三种方式创建新的高图,那么有没有办法在另一种方法中获取最新的"图表"变量?

谢谢

dej*_*avu 7

See this highcharts API:

setExtremes (Number min, Number max, [Boolean redraw], [Mixed animation])
Run Code Online (Sandbox Code Playgroud)

Link: http://api.highcharts.com/highcharts#Axis.setExtremes()

They also have some jsfiddle examples there.

EDIT: to change the tickinterval try following:

chart.yAxis[0].options.tickInterval = markInterval;
Run Code Online (Sandbox Code Playgroud)

在上面的行之后添加它:

chart.xAxis[0].isDirty = true;
Run Code Online (Sandbox Code Playgroud)