Highcharts: 动态更改/添加轴属性

3
我正在创建一些高级图表,它们都包含相同的默认框架。为了更新图表的动态元素,我一直在创建新对象,并在绘制图表的函数调用中引用它们。
这一方法一直很好用,直到我开始尝试使轴标签动态化(某些图表需要双轴)。我已经包含了一个 jsfiddle,展示了我正在使用的动态结构以及相同图表的硬编码示例。有人能告诉我为什么这可能不起作用吗?

https://jsfiddle.net/jeo3y1rx/

对象示例:

yAxis = {
    'dollars': function () { 
        var yAxis = { 
            title: { 
                text: "Burdened Dollars" 
            }
        }
        return yAxis;
    }
};

这是在highcharts对象中引用的示例:

    var chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container',
        type: 'column'
    },
    xAxis: {
        categories: ['FY Total']
    },
    yAxis: yAxis.dollars,
    series: [{
        name: 'YTD Plan',
        data: [1000]
    }, {
        type: 'column',
        name: 'YTD Actual',
        data: [900]
    }]
    });

任何帮助都受到赞赏。

传递函数引用对其他配置组件有效吗? - Mark
您是否意图评估函数 yAxis: yAxis.dollars(), - Mark
@Mark - 太棒了。我知道我忽略了一些明摆着的东西。我没有用括号对其进行评估。yAxis.dollars() 完美地工作了。你能把它提交为答案,我会将其标记为正确吗? - thefreeline
3个回答

3

3

1

这里有一个可工作的样例: DEMO

由于您将 "dollars" 声明为返回值的函数,因此需要像这样调用它:yAxis: yAxis.dollars(),

JS 代码:

var yAxis = {
    'dollars': function () { 
        var yAxis = { 
            title: { 
                text: "Burdened Dollars" 
            }
        };
        return yAxis;
    }
};

$(function () {
    var chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            type: 'column'
        },
        xAxis: {
            categories: ['FY Total']
        },
        yAxis: yAxis.dollars(),//call it like this
        series: [{
            name: 'YTD Plan2',
            data: [1000]
        }, {
            type: 'column',
            name: 'YTD Actual',
            data: [900]
        }]
    });
});

谢谢。这是一篇旧帖子,但我会接受答案。Mark提出了同样的建议,显然是我的疏忽。感谢您制作演示文稿。 - thefreeline
很高兴能帮助你! :) - Rahul Gupta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接