Balamurugan
Balamurugan

Reputation: 11

Creating dynamic labels for dojo bar chart

I have bar chart, whose x-axis labels is generated dynamically from db, I am getting these values through ajax call data '{value:1,text:"x"},{value:2,text:"Vikash"},{value:3,text:"y"},{value:4,text:"z"}'. How to pass these values to label parameter. I tried passing it as an array and also as json but nothing seems to work.. Any ideas.. Here is my code:

makeBarChart=function() {
                        animChart = new dojox.charting.Chart2D("animChart");
                        animChart.setTheme(dojox.charting.themes.MiamiNice)
                        .addAxis("x",{
                            labels: [ myLabelSeriesarray ], gap: 20}).
                            addAxis("y", {
                            vertical: true,
                            fixLower: "major",
                            fixUpper: "major",
                            includeZero: true
                        }).
                            addPlot("default", {
                            type: "ClusteredColumns",
                            gap: 10

                        }).
                            addSeries("Series A", closedSeries).
                            addSeries("Series B", othersSeries).

                            render();
                    };
                dojo.addOnLoad(makeBarChart);

Upvotes: 1

Views: 1386

Answers (2)

aastha
aastha

Reputation: 41

Suppose you have received data in json format through ajax call and you want to create dynamic labels using that data.
var jsonArray= ["label1","label2","label3"];
var labelsArray = [];

for (var i = 0; i < jsonArray.length; i++,) {
    var obj = {};
    obj.value = i;
    obj.text = jsonArray[i];
    labelsArray.push(obj);
}
Set the labels in x Axis to this labelsArray
this.chart1.addAxis("x", {
title: "Collection Date",
titleOrientation: "away",
titleGap:20,
labels:labelsArray
})

Upvotes: 0

Vikash
Vikash

Reputation: 11

jsp code:

var labelDis = new Array(pieData.length); // pieData is the JSON value getting from Java
for(var i = 0;i<pieData.length;i++){
    labelDis[i] = new Array(2);
    labelDis[i]['value'] =  i + 1;
    labelDis[i]['text']  = pieData[i]['axis'];
}

Java/Servlet code:

JSONObject jSONObject = new JSONObject();
jSONObject.put("axis", "value from database");
jSONArray.put(jSONObject);
out.print(jSONArray.toString());

Upvotes: 1

Related Questions