使用Google Charts我正在从JSON创建一个DataTable,添加一些列,填充行,然后创建一个选择特定列的数据视图。
运行Google图表API双面显示时:Invalid column index 6. Should be an integer in the range [0-4].
这很奇怪,因为DataTable中有10列,而不是5.这是代码。
function setoregonwkldbardata(){
var query = "SELECT Cluster, RAMCapacityGB, LHRAMCapacityGB, AvgVMRAMUsedGB, RAMUsedGB, NumVMs FROM clusterstat WHERE Location LIKE 'Oregon' AND Date = (SELECT MAX(Date) FROM clusterstat) ORDER BY Cluster ASC";
var urlencoded = encodeURI(sql2json+query);
var jsonData = $.ajax({
url: urlencoded,
dataType: "json",
async: false
}).responseText;
// assign a google DataTable object
wkldbardata = new google.visualization.DataTable(jsonData);
var numrows = wkldbardata.getNumberOfRows();
//column 6
wkldbardata.addColumn({
type: 'number',
role: 'data',
label: 'N1 RAM Workloads'
});
for (var i=0;i<numrows;i++){
var totcap = wkldbardata.getValue(i, 1);
var lhcap = wkldbardata.getValue(i,2);
var n1cap = totcap - lhcap;
var avgram = wkldbardata.getValue(i,3)
var n1wklds = (Math.round(100*(n1cap / avgram))/100);
wkldbardata.setValue(i, 6, n1wklds);
}
//column 7
wkldbardata.addColumn({
type: 'number',
role: 'data',
label: 'RAM Workloads Installed'
});
for(var i=0;i<numrows;i++){
var usedram = wkldbardata.getValue(i, 4);
var avgram = wkldbardata.getValue(i,3)
var wkldsinstalled = (Math.round(100*(usedram / avgram))/100);
wkldbardata.setValue(i,7,wkldsinstalled);
}
//column 8
wkldbardata.addColumn({
type: 'string',
role: 'annotation'
});
for(var i=0;i<numrows;i++){
var numhosts = wkldbardata.getValue(i, 5);
var annotation = numhosts+" Real VMs";
wkldbardata.setValue(i,8,annotation);
}
//column 9
wkldbardata.addColumn({
type: 'string',
role: 'style'
});
for(var i=0;i<numrows;i++){
var n1capacity = (wkldbardata.getValue(i,1) - wkldbardata.getValue(i,2));
var n1workloads = (n1capacity / wkldbardata.getValue(i,3));
if (n1workloads < wkldbardata.getValue(i,5)){
wkldbardata.setValue(i,9,highlightstyle);
}
}
console.log(oregonwkldbardata.getNumberOfColumns()); //returns 10
}
function setoregonwkldbarview(){
wkldbarview = new google.visualization.DataView(wkldbardata);
console.log(wkldbardata.getNumberOfColumns()); //returns 10
wkldbarview.setColumns([0,6,7,8,9]);
}
以下是从AJAX返回的数据
{"cols":[{"label":"Cluster","type":"string"},{"label":"RAMCapacityGB","type":"number"},{"label":"LHRAMCapacityGB","type":"number"},{"label":"AvgVMRAMUsedGB","type":"number"},{"label":"RAMUsedGB","type":"number"},{"label":"NumVMs","type":"number"}],"rows":[{"c":[{"v":"Tier0-DL380-NWDC-01"},{"v":511.93},{"v":255.97},{"v":39.27},{"v":157.06},{"v":4}]},{"c":[{"v":"Tier1-C7000-NWDC-01"},{"v":8190.91},{"v":255.97},{"v":23.43},{"v":5130.25},{"v":219}]},{"c":[{"v":"Tier1-C7000-NWDC-02"},{"v":8190.91},{"v":255.97},{"v":26.31},{"v":5841.38},{"v":222}]},{"c":[{"v":"Tier1-C7000-NWDC-03"},{"v":13822.9},{"v":511.97},{"v":31.18},{"v":9166.82},{"v":294}]},{"c":[{"v":"Tier1-C7000-NWDC-04"},{"v":7807.42},{"v":511.97},{"v":149.67},{"v":2993.39},{"v":20}]},{"c":[{"v":"Tier1-C7000-NWDC-05"},{"v":8190.91},{"v":255.97},{"v":24.07},{"v":3104.79},{"v":129}]},{"c":[{"v":"Tier1-C7000-NWDC-06"},{"v":2559.66},{"v":255.97},{"v":28.22},{"v":56.44},{"v":2}]},{"c":[{"v":"Tier1-DL980-NWDC-01"},{"v":36863.81},{"v":2047.99},{"v":117.48},{"v":27959.56},{"v":238}]},{"c":[{"v":"Tier2-C7000-NWDC-01"},{"v":8190.99},{"v":255.97},{"v":8.72},{"v":6097.06},{"v":699}]},{"c":[{"v":"Tier2-C7000-NWDC-02"},{"v":6911.37},{"v":191.99},{"v":11.17},{"v":5216.65},{"v":467}]},{"c":[{"v":"Tier2-C7000-NWDC-03"},{"v":8190.91},{"v":255.97},{"v":8.63},{"v":5023.78},{"v":582}]},{"c":[{"v":"Tier2-C7000-NWDC-04"},{"v":16126.91},{"v":511.97},{"v":16.23},{"v":10079.51},{"v":621}]},{"c":[{"v":"Tier2-C7000-NWDC-05"},{"v":14334.91},{"v":511.97},{"v":16.83},{"v":8366.73},{"v":497}]},{"c":[{"v":"Tier2-C7000-NWDC-06"},{"v":1791.76},{"v":255.97},{"v":0},{"v":25.11},{"v":0}]},{"c":[{"v":"Tier2-C7000-NWDC-DMZ-01"},{"v":1535.94},{"v":191.99},{"v":8.71},{"v":539.98},{"v":62}]},{"c":[{"v":"Tier2-C7000-VDI-01"},{"v":14845.91},{"v":511.97},{"v":5.8},{"v":7435.21},{"v":1282}]},{"c":[{"v":"Tier2-C7000-VDI-02"},{"v":1535.81},{"v":511.97},{"v":8.91},{"v":374.02},{"v":42}]},{"c":[{"v":"Tier2-C7000-XEN-INFRA-01"},{"v":2047.86},{"v":511.97},{"v":8.36},{"v":401.46},{"v":48}]},{"c":[{"v":"Tier2-C7000-XENAPP-01"},{"v":6143.59},{"v":511.97},{"v":13.69},{"v":1053.75},{"v":77}]},{"c":[{"v":"Tier2-DL380-XEN-01"},{"v":1279.66},{"v":127.97},{"v":23.94},{"v":765.99},{"v":32}]},{"c":[{"v":"Tier2-UCS-DELPHIX-01"},{"v":2047.45},{"v":255.93},{"v":105.33},{"v":947.96},{"v":9}]},{"c":[{"v":"UCSPOC-EVCCluster"},{"v":3583.29},{"v":3071.55},{"v":12.77},{"v":51.09},{"v":4}]}]}
答案 0 :(得分:0)
必须禁用启动动画才能使其正常工作。
请参阅https://groups.google.com/forum/#!topic/google-visualization-api/ONkRnM7InUA