为什么这个简单的highcart JS Fiddle示例不用SetCategories调用重置XAxis呢?

Why doesn't this simple Highcarts JS Fiddle example reset the XAxis with SetCategories call?

本文关键字:调用 SetCategories XAxis 简单 highcart Fiddle JS 为什么      更新时间:2023-09-26

问题的标题说明了一切。我有这个小提琴SetCateforiesFiddleExample

我想做的是将类别从月份更改为数字,作为一个简单的例子应用到我的实际应用程序中。有人能告诉我为什么这个小提琴不能正确地将类别设置为数字吗?

$(function () {
$('#container').highcharts({
    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },
    series: [{
        data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
    }]
});

// the button action
$('#button').click(function () {
    var chart = $('#container').highcharts();
    chart.xAxis[0].remove(false);
    chart.addAxis({
          lineWidth: 2,
          lineColor: '#08F'},
          true,false);
    chart.xAxis[0].setCategories(['1','2','3','4','5','6','7','8','9','10','11','12'], false);
    chart.redraw();
});

});

我宁愿使用axis .update():

用新的类别和选项更新轴,而不是删除轴,添加新轴并设置其类别。
    chart.xAxis[0].update({
    lineWidth: 2,
    lineColor: '#08F',
    categories: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
  },
  true, false);

这里你可以看到一个如何工作的例子;http://jsfiddle.net/5tzjoq3h/17/

如果我理解正确的话,您希望将xAxis类别从月份更改为数字,为此您只需在调用highcharts方法时将它们放入

 xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    } 

你可以直接写

     xAxis: {
            categories: ['1','2','3','4','5','6','7','8','9','10','11','12']
}

这里是工作示例

在加载后使用addSeries方法将一个序列添加到图表中时触发。一个参数event被传递给函数。通过事件。选项,您可以访问传递给addSeries方法的系列选项。返回false将阻止添加该系列。所以你不用在chart.xAxis[0].setCategories([...], false);后面写假而要写chart.xAxis[0].setCategories([...], true);还需要编写适当的语句链来调用重绘函数,如chart.events.redraw();下面是工作示例