2012-03-19 28 views
2

簡而言之,我有2個ActualCost和BudgetCost的值,我製作了一個Clustered Columns圖表來顯示它們的值。現在我爲他們每個人製作了兩個系列(我想爲他們製作傳奇)。在每個系列中,爲什麼我必須在Array中使用兩個值?Dojo-Charting問題:條形圖(ClusteredColumns)使用數組?

當我使用.addSeries([])代碼{y:0,tooltip:0},它做工精細的同時顯示酒吧,當我不使用它,它只能顯示單杆。有人可以解釋爲什麼我必須使用它(即{y:0,tooltip:0})。

我爲它寫了一個代碼,它的工作正常,下面的代碼片段;

dojo.require("dijit.layout.BorderContainer"); 
    dojo.require("dijit.layout.ContentPane"); 
    dojo.require("dijit.TitlePane"); 
    dojo.require("esri.dijit.Popup"); 
    dojo.require("dojox.charting.Chart2D"); 
    dojo.require("dojox.charting.plot2d.ClusteredColumns"); 
    dojo.require("dojox.charting.action2d.Tooltip"); 
    dojo.require("dojo.number"); 
    dojo.require("dijit.layout.TabContainer"); 
    dojo.require("dojox.charting.themes.Wetland"); 
    //... 
     function getTextContent(graphic) 
      var ActualCost; 
      var BudgetCost; 
      (parseFloat(jsonobject.Data.Actual_Total_Cost) == 'NaN') ? ActualCost=0 : 
      ActualCost=parseFloat(jsonobject.Data.Actual_Total_Cost); 
      (parseFloat(jsonobject.Data.Current_Budget) == 'NaN') ? BudgetCost=0 : 
      BudgetCost=parseFloat(jsonobject.Data.Current_Budget); 

      //display a dojo pie chart for the Project Cost 
      var CostPane = new dijit.layout.ContentPane({ 
       title: "Project Cost" 
       }); 
     tc.addChild(CostPane); 
     var costDiv = dojo.create("div", 
     { id:"cost",width: 300, height: 300}, dojo.create('div')); 
     var barchart = new dojox.charting.Chart2D(costDiv); 
     dojo.addClass(barchart,'chart'); 
     barchart.setTheme(dojo.getObject("dojox.charting.themes.Wetland")); 
     barchart.addPlot("default",{type: "ClusteredColumns",markers: true,gap: 10}); 
     //barchart.addAxis("x"); 
     barchart.addAxis("y", {vertical: true}); 

     new dojox.charting.action2d.Highlight(chart, "default"); 
     new dojox.charting.action2d.Tooltip(chart,"default"); 
     new dojox.charting.action2d.MoveSlice(chart,"default"); 

//Why using {y:0,tooltip:0} in the array?? 


    barchart.addSeries("Actual Cost", [ {y:ActualCost,tooltip:'Actual Cost =' + 
Math.round(ActualCost*100)/100}, {y:0,tooltip:0}]); 
     barchart.addSeries("Current Budget", [ {y:BudgetCost,tooltip:'Budget Cost =' + 
Math.round(BudgetCost*100)/100}, {y:0,tooltip:0}]); 
     barchart.render(); 
     CostPane.set('content',barchart.node); 
     deferred.callback(tc.domNode); 
              }, 

有人可以幫忙嗎?謝謝

+0

任何一個答案都可以嗎? – AbdulAziz 2012-03-20 13:35:16

+0

也許在jsFiddle(http://jsfiddle.net/)中重新創建您的問題可以讓人們輕鬆看到您的問題。 – GavinR 2012-10-08 20:54:31

回答

0

addSeries方法接受三個參數,第二個是數組數組,這就是爲什麼你需要使用數組。它表示柱形圖中的數據。