Highcharts Highchart轴更新/图表重绘

Highcharts Highchart轴更新/图表重绘,highcharts,Highcharts,在我的highchart中,在某个时刻,我需要更新yAxis的min、max和tickInterval。 我试过三种方法: 我尝试了以下代码,但它说“object”没有“update”方法 var extremes = chart.yAxis[i].getExtremes(); chart.yAxis[i].update({ min: extremes.dataMin * 1.1, max: extremes.dataMax * 1.1, tick

在我的highchart中,在某个时刻,我需要更新yAxis的min、max和tickInterval。 我试过三种方法:

  • 我尝试了以下代码,但它说“object”没有“update”方法

    var extremes = chart.yAxis[i].getExtremes();
    chart.yAxis[i].update({
            min: extremes.dataMin * 1.1,
            max: extremes.dataMax * 1.1,
            tickInterval : SomeValue,
        });
    
     chart.yAxis[i].min = extremes.dataMin * 1.1;
     chart.yAxis[i].max = extremes.dataMax * 1.1;
     chart.yAxis[i].tickInterval = SomeValue;
     chart.redraw();
    
  • 我还尝试了chart.redraw。。。使用以下代码

    var extremes = chart.yAxis[i].getExtremes();
    chart.yAxis[i].update({
            min: extremes.dataMin * 1.1,
            max: extremes.dataMax * 1.1,
            tickInterval : SomeValue,
        });
    
     chart.yAxis[i].min = extremes.dataMin * 1.1;
     chart.yAxis[i].max = extremes.dataMax * 1.1;
     chart.yAxis[i].tickInterval = SomeValue;
     chart.redraw();
    
    这次它不会显示任何错误,但图表也不会刷新

  • 这一次,我尝试更新选项,然后创建一个新的highchart:

    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);
    
  • 这一次有效,但我不想创建一个新的highchart,我想更新旧的highchart,因为我也在另一个方法中使用它

    请让我知道,这是如何工作的,如果我使用第三种方法创建新的highchart,那么有没有其他方法获取最新的“chart”变量


    谢谢

    请参阅此highcharts API:

    setExtremes (Number min, Number max, [Boolean redraw], [Mixed animation])
    
    链接:

    这里还有一些JSFIDLE示例

    编辑:要更改时间间隔,请尝试以下操作:

    chart.yAxis[0].options.tickInterval = markInterval;
    
    在上述行后添加以下内容:

    chart.xAxis[0].isDirty = true;
    

    您只有一个选择:

    $(container).highcharts({
        xAxis: {
            max: 10 //you can set the maximum here
        }
    })
    
    最大值只能定义一次。之后,任何其他更改都不会对图表产生影响

    chart.xAxis[0].options.max = 12; //this statement has no effect
    

    在设置图表之前添加以下行。添加系列

    chart.options.series = false;
    chart = new Highcharts.Chart(chart.options);
    chart.render();
    

    您应该使用其他对象来触发yAxis的更新方法

    经验:

    var图表=新的高位图表(配置);
    变量轴=chart.axes;//这都是Axis对象
    var xAxis=轴[0];//通过数组的方法获取axis对象
    var yAxis=轴[1];
    //现在,对象已确定,下一个触发器更新方法
    yAxis.update();
    

    highcharts版本作者:“4.1.9”

    ^^感谢您的即时回答。是的,我可以使用setextrems,但我没有,因为我也想改变tickInterval。我不希望highchart自己选择滴答声间隔。^^仍然不工作。请参见下面示例中的按钮3:@sur代码工作正常。您正在将极限值从0设置为25。由于第一个值从30左右开始,因此它不会显示在图表中。将极值从0更改为50^^^问题不在于值,我知道它从更高的值开始,这只是一个虚拟示例。问题在于tickInterval,在本例中,单击按钮时,它应该是1。第一种方法应该有效。确保您有最新的3.0 Highcharts版本。