将系列添加到简单的dojo图表

时间:2010-06-24 18:38:37

标签: javascript dojo dojox.charting

我构建了一个简单的函数,使用dojox.charting以编程方式构建图表。关于如何在通过addSeries将变量传递给图表时正确地转换变量,我有点困惑。考虑一下:

function buildChart(targetDiv){ 
        //grab the destination
        var bc = dojo.byId(targetDiv);

        //define the data for the series
        var testData = [2,4,2,2,2,3,2,10,11,12,8,4];
        var string = "2,4,2,2,2,3,2,10,11,12,8,4";
        var convertedString = string.split(",");
        console.log("Variable testData value is " + typeof(testData));
        console.log("Variable convertedString value is " + typeof(convertedString));

        //build the chart
        dojo.attr(bc,"style","width:300px;height:200px;");
        var chart = new dojox.charting.Chart2D(bc);
        chart.addPlot("default", {type: "Lines"});
        chart.addAxis("x");
        chart.addAxis("y", {vertical: true});
        //chart.addSeries("Series 1 works fine", testData);
        chart.addSeries("Series 2 not working", convertedString);
        chart.render();
}//buildChartenter code here

请注意,testData变量工作正常,但convertString变量却没有。我必须错过一些非常简单的事情。在这种情况下,如何转换入站字符串变量?

1 个答案:

答案 0 :(得分:1)

是的,很简单:testData是数字数组,而convertedString是字符串数组。

您可以将这些字符串转换为这样的数字:

var convertedString = dojo.map(string.split(","), parseFloat);

或者你可以手动完成:

var convertedString = string.split(",");
for(var i = 0; i < convertedString.length; ++i){
  convertedString[i] = parseFloat(convertedString[i]);
}

PS:在标识符中使用string似乎......错误。