0

コードを表示

$.getJSON('Transacciones/getData',{}, function (data) {
    dataModulo3 = data;
    dibujarColumnChart( transformarData(data) , "divModulo3");
});

Controller 、これからデータを取得します

public ActionResult getData(){
    List<String[]> aux = new List<String[]>();
    aux.Add(new String[] { "string", "number", "number", "number", "number",   "number", "number" });//tipo cabeceras
    aux.Add(new String[] { "Year", "Austria", "Belgium", "Czech Republic", "Finland", "France", "Germany" });//nombre cabeceras
    aux.Add(new String[] { "2003", "1336060", "3817614", "974066", "21104797", "6651824", "15727003"});
    return Json(aux, JsonRequestBehavior.AllowGet);
}

transformarData js 関数怒鳴る

function transformarData(data) {
    var rows = data.length;
    var cols = data[0].length;
    var tdata = new google.visualization.DataTable();
    for (var i = 0; i < cols; i++) {
        tdata.addColumn(data[0][i], data[1][i]);
    }
    tdata.addRows(data.length);
    for (var i = 2; i < data.length; i++) {    
        for (var j = 0; j < cols; j++) {
            var value = data[i][j];
            if (data[0][j] == 'number') {
                value = parseInt(data[i][j]);
            }
        tdata.setCell(i, j, value);
        }
    }
    return tdata;
}

dibujarColumnChart 関数 js 怒鳴る

function dibujarColumnChart(datos, idDiv) {
    var data = datos;
    var columnchart = new google.visualization.ColumnChart(document.getElementById(idDiv));
    columnchart.draw(data, {
        backgroundColor: "transparent"
    });
}

中央の縦棒グラフではありません

しかし、コントローラーからのデータを使用する代わりに、javascript データを使用する場合:

$.getJSON('Transacciones/getData',dataJson , function (data) {
    dataModulo3 = data;
    var datajs = google.visualization.arrayToDataTable([
    ['Year', 'Austria', 'Belgium', 'Czech Republic', 'Finland', 'France', 'Germany'],
    ['2003',  1336060,   3817614,       974066,       1104797,   6651824,  15727003]
    ]);
    dibujarColumnChart( datajs , "divModulo3");
});

縦棒グラフを中央に配置します:

縦棒グラフを中央に配置

json 呼び出しからデータを取得するこの縦棒グラフを中央に配置できるかどうかを知りたいです。

4

1 に答える 1

0

tdata.setCell(i - 2, j, value) の代わりに tdata.setCell(i, j, value) を使用したため、最初のフローに値を指定しませんでした。代わりに、Google が行を作成したため、右に移動します。また、3 行ではなく 1 行を追加する必要があります。

以下のコードを参照してください。

function transformarData(data) {
    var rows = data.length-2;
    var cols = data[0].length;
    var tdata = new google.visualization.DataTable();
    log("creado tdata");
    //tdata.addColumn(data[, data[0][0]);
    for (var i = 0; i < cols; i++) {
        tdata.addColumn(data[0][i], data[1][i]);
    }
    tdata.addRows(rows);
    for (var i = 2; i < data.length; i++) {
        for (var j = 0; j < cols; j++) {
            var value = data[i][j];
            if (data[0][j] == 'number') {
                value = parseInt(data[i][j]);
            }
            tdata.setCell(i-2, j, value);
        }
    }
    return tdata;
}

PD: 他の投稿では、あなたの質問に答えたいと思っているすべての人の理解を深めるために、変数に英語で名前を付けてみてください。

于 2013-07-29T05:38:58.643 に答える