Добавление серии в простую диаграмму додзё - PullRequest
0 голосов
/ 24 июня 2010

Я построил простую функцию, которая программно строит диаграммы, используя 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 Ответ

1 голос
/ 25 июня 2010

Да, это просто: 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 в качестве идентификатора кажется & hellip; неправильно.

...