2013-03-22 46 views
2

我正在創建所有包含相同默認框架的高圖。要更新圖表的動態元素,我一直在創建新的對象,並在繪製圖表的函數調用中引用它們。Highcharts:動態更改/添加座標軸屬性

這工作得很好,直到我開始嘗試使軸標籤變爲動態(某些圖表需要雙軸)。我已經包含了一個jsfiddle,它顯示了我正在使用的動態結構以及相同圖表硬編碼的示例。有人能告訴我爲什麼這可能不起作用嗎?對象的

http://jsfiddle.net/lcsmith_stsci/H5Xeb/

實施例:這如何在highcharts被引用

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

示例對象:

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

任何幫助理解。

+0

傳遞的其他配置組件的功能參考書? – Mark 2013-03-22 20:09:10

+0

你的意思是評估函數'yAxis:yAxis.dollars(),'? – Mark 2013-03-22 20:13:49

+0

@Mark - 太棒了。我知道我忽略了坐在我面前的東西。我沒有評估它的父母。 yAxis.dollars()完美地工作。你可以提交這個答案,我會標記爲正確的? – thefreeline 2013-03-23 00:57:51

回答

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] 
     }] 
    }); 
}); 
+0

謝謝。這是一箇舊帖子,但我會接受答案。馬克提出了同樣的建議,這顯然是我的簡單監督。感謝您製作演示。 – thefreeline 2014-07-01 13:19:07

+0

高興地幫助你! :) – 2014-07-02 05:55:15