2012-03-19 2 views
2

간단히 말해 ActualCost 및 BudgetCost의 값이 2 개인 경우 해당 값을 표시하기 위해 Clustered Columns 차트를 만들었습니다. 이제 나는 각각에 대해 두 개의 시리즈를 만들었습니다. (전설을 만들고 싶습니다). 각 시리즈에서 Array에서 두 값을 사용해야하는 이유는 무엇입니까?Dojo 차트 : 배열을 사용하는 막 대형 차트 (ClusteredColumns)?

코드 {y:0,tooltip:0}에서 .addSeries([])을 사용할 때 양쪽 막대를 모두 표시 할 때 잘 동작하며 사용하지 않을 때는 단일 막대 만 표시합니다. 누군가 이것을 사용해야하는 이유를 설명 할 수 있습니까 (예 : {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

+0

아마도 jsFiddle (http://jsfiddle.net/)에서 문제를 재현하면 사람들이 쉽게 문제를 볼 수 있습니다. – GavinR

답변

0

addSeries 메서드는 세 개의 인수를 받아들입니다. 두 번째 배열은 데이터 배열이므로, 배열을 사용해야합니다. 기둥 형 차트의 데이터를 나타냅니다.

관련 문제