Dojo-Charting 问题:使用数组的条形图(聚集列)?

Posted

技术标签:

【中文标题】Dojo-Charting 问题:使用数组的条形图(聚集列)?【英文标题】:Dojo-Charting Issue: Bar Chart (ClusteredColumns) Using Array? 【发布时间】:2012-03-19 21:54:10 【问题描述】:

简单地说,我有两个 ActualCost 和 BudgetCost 值,我制作了一个聚集柱形图来显示它们的值。现在我为他们每个人制作了两个系列(我想为他们制作传奇)。在每个系列中,为什么我必须在 Array 中使用两个值?

当我在.addSeries([]) 中使用代码y:0,tooltip:0 时,它可以正常显示两个条形图,而当我不使用它时,它只显示一个条形图。有人可以解释为什么我必须使用它(即y:0,tooltip:0)。

我为它写了一段代码,它运行良好,代码如下:sn-p;

    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);
                                            ,

有人可以帮忙吗?谢谢

【问题讨论】:

也许在 jsFiddle (jsfiddle.net) 中重新创建您的问题可以让人们轻松看到您的问题。 【参考方案1】:

addSeries 方法接受三个参数,第二个是数据数组,这就是你需要使用数组的原因。表示柱状图中的数据。

【讨论】:

以上是关于Dojo-Charting 问题:使用数组的条形图(聚集列)?的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib 条形图不接受数组作为高度参数

如何从 Vue.Js 中的变量向数组添加值以制作条形图

用于循环的php数组管理显示堆积的条形图

条形图 在彼此的顶部堆叠数据

分组条形图,在 chart.js 中

Matplotlib 在一张图中绘制多个条形图