无法解析对象
Unable to parse objects
var data = [{
x: 'A',
y: 3
}, {
x: 'B',
y: 2
}, {
x: 'C',
y: 4
}, {
x: 'D',
y: 3
}];
var xScale = new Plottable.Scales.Category()
var yScale = new Plottable.Scales.Linear()
var xAxis = new Plottable.Axes.Category(xScale, "bottom");
var plot = new Plottable.Plots.Bar()
.addDataset(new Plottable.Dataset(data))
.x(function(d) {
return d.x;
}, xScale)
.y(function(d) {
return d.y;
}, yScale)
.animated(true)
.renderTo("svg#example");
上面的代码正确地呈现了绘图,但是当我宁愿使用:
var data2 = {
'A': 2,
'B': 3,
'C': 4,
'D': 5,
}
var plot = new Plottable.Plots.Bar()
.addDataset(new Plottable.Dataset(data2))
.x(function(d) {
return d;
}, xScale)
.y(function(d) {
return data2[d];
}, yScale)
.animated(true)
.renderTo("svg#example");
没用。如何解析对象中的数据?是否可以按 X 中类别的字母顺序显示条形图。例如有时在从对象转换为数组时,数组会以键的随机顺序解包,有时会使它的第一个元素属于 'B' 键。
将您的对象转换为数组。首先,获取键,其次,将它们与值组合到一个数组中。如果还是不整齐,可以对数组进行排序。
var data = Object.keys(data2).map(function (key) { return [key, data2[key]]; });
演示:
var data2 = {'A': 2, 'B': 3, 'C': 4, 'D': 5};
var data = Object.keys(data2).map(function (key) { return [key, data2[key]]; });
console.log(data);
var data = [{
x: 'A',
y: 3
}, {
x: 'B',
y: 2
}, {
x: 'C',
y: 4
}, {
x: 'D',
y: 3
}];
var xScale = new Plottable.Scales.Category()
var yScale = new Plottable.Scales.Linear()
var xAxis = new Plottable.Axes.Category(xScale, "bottom");
var plot = new Plottable.Plots.Bar()
.addDataset(new Plottable.Dataset(data))
.x(function(d) {
return d.x;
}, xScale)
.y(function(d) {
return d.y;
}, yScale)
.animated(true)
.renderTo("svg#example");
上面的代码正确地呈现了绘图,但是当我宁愿使用:
var data2 = {
'A': 2,
'B': 3,
'C': 4,
'D': 5,
}
var plot = new Plottable.Plots.Bar()
.addDataset(new Plottable.Dataset(data2))
.x(function(d) {
return d;
}, xScale)
.y(function(d) {
return data2[d];
}, yScale)
.animated(true)
.renderTo("svg#example");
没用。如何解析对象中的数据?是否可以按 X 中类别的字母顺序显示条形图。例如有时在从对象转换为数组时,数组会以键的随机顺序解包,有时会使它的第一个元素属于 'B' 键。
将您的对象转换为数组。首先,获取键,其次,将它们与值组合到一个数组中。如果还是不整齐,可以对数组进行排序。
var data = Object.keys(data2).map(function (key) { return [key, data2[key]]; });
演示:
var data2 = {'A': 2, 'B': 3, 'C': 4, 'D': 5};
var data = Object.keys(data2).map(function (key) { return [key, data2[key]]; });
console.log(data);