3

すべて同じデフォルトフレームワークを含む多数のハイチャートを作成しています。チャートの動的要素を更新するために、新しいオブジェクトを作成し、チャートを描画する関数呼び出し内でそれらを参照しています。

これは、軸ラベルを動的にしようとするまでは正常に機能していました(一部のグラフでは2軸が必要です)。使用している動的構造を示す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]
    }]
    });

どんな助けでも大歓迎です。

4

3 に答える 3

3

ハイチャートでは、そのように関数を属性として使用することはできません。ただし、チャートがロードされた後、highchartsAPIを使用できます。

chart.yAxis[0].setTitle({
        text: "Burdened Dollars"
});

http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/members/axis-settitle/

于 2013-03-22T20:57:49.833 に答える
3

Highcharts 3.0リリースでは、update()関数によって軸を動的に変更できます

http://api.highcharts.com/highcharts#Axis.update()

于 2013-03-25T11:45:47.897 に答える
1

これが実用的なフィドルです:DEMO

値を返す関数として「ドル」を宣言しているので、次のように呼び出す必要があります。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]
        }]
    });
});
于 2014-07-01T04:57:24.883 に答える