4

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

  1. 我尝试了以下代码,但它显示“object# has no menthod 'update'”

    var extremes = chart.yAxis[i].getExtremes();
    chart.yAxis[i].update({
            min: extremes.dataMin * 1.1,
            max: extremes.dataMax * 1.1,
            tickInterval : SomeValue,
        });
    
  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();
    

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

  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);
    

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

请让我知道,这是如何工作的,如果我使用第三种方式创建新的高图,那么有没有办法用另一种方法获取最新的“图表”变量?

谢谢

4

4 回答 4

7

请参阅此 highcharts API:

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

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

他们那里也有一些 jsfiddle 示例。

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

chart.yAxis[0].options.tickInterval = markInterval;

在上面的行之后添加这个:

chart.xAxis[0].isDirty = true;
于 2013-06-07T07:40:57.657 回答
0

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

经验:

var chart = new Highcharts(config);

var axes = chart.axes; // this is all Axis object
var xAxis = axes[0]; // by array's method get axis object
var yAxis = axes[1];

// now, object is ok, next trigger update method
yAxis.update(<your attribute config>);

highcharts 版本:“4.1.9”

于 2016-03-23T04:10:53.780 回答
-1

你只有一个选择:

$(container).highcharts({
    xAxis: {
        max: 10 //you can set the maximum here
    }
})

最大值只能定义一次。之后,任何其他更改都不会影响图表。

chart.xAxis[0].options.max = 12; //this statement has no effect
于 2013-11-18T09:47:07.760 回答
-1

在设置之前添加以下行chart.addSeries

chart.options.series = false;
chart = new Highcharts.Chart(chart.options);
chart.render();
于 2015-12-30T11:16:13.720 回答