为道场条形图创建动态标签

时间:2011-09-05 12:53:56

标签: dojo

我有条形图,其x轴标签是从db动态生成的,我通过ajax调用数据获取这些值 '{值:1,文本: “×”},{值:2,文本: “Vikash”},{值:3,文本: “Y”},{值:4,文本: “Z”}'。  如何将这些值传递给label参数。我尝试将它作为数组传递,也作为json但似乎没有任何工作..任何想法.. 这是我的代码:

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

2 个答案:

答案 0 :(得分:1)

jsp代码:

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代码:

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

答案 1 :(得分:0)

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
})