#angular #c3.js
Вопрос:
У меня есть угловой компонент, который отправляет запрос в API и получает список результатов. Эта страница должна взять эти данные и сгенерировать графику, используя c3. Но я не знаком с этой структурой, и я изо всех сил пытаюсь определить, как data.id на c3.создайте метод. Просто чтобы прояснить ситуацию: у меня propertyName
есть строка, которую я хочу отобразить, propertyCode
которую мне нужно использовать в качестве идентификатора каждого индекса массива, value1, value2
и value3
это значения валюты, относящиеся к этому запросу. Итак, в принципе, я должен задать propertyCode
идентификатор каждого массива, propertyName
то есть только отображение, и значения. Ниже приведен фактический код моего решения, которое не работает, я точно знаю, почему я теряюсь в js. Но массив заполняется таким образом:
0:
[[Prototype]]: Object
1: Array(1)
0:
propertyCode: "123"
propertyName: "foo"
value1: 100
value2: 55
value3: 45
[[Prototype]]: Object
length: 1
generateGraph(resultArray: any[]): void {
if (resultArray.length === 0) {
return;
}
let data = [{}];
resultArray.forEach((e) => {
data.push([{ 'propertyCode': e.propertyCode.toString(), 'propertyName': e.propertyName, 'value1': e.value1, 'value2': e.value2, 'value3': e.value3 }]);
});
this.graph = c3.generate({
data: {
json: data,
type: 'bar',
keys: {
x: 'propertyCode',
value: ['value1', 'value2', 'value3'],
}
},
title: {
text: 'Search of property code ' resultArray[0].propertyCode
},
bar: {
width: {
ratio: 0.5
}
},
legend: {
position: 'right',
},
axis: {
y: {
tick: {
format: function (d) { return Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(d); }
}
},
x: {
type: 'category',
}
}
});
}
Комментарии:
1. Я хотел бы сделать столбчатую диаграмму следующим образом: 1. для каждого кода свойства есть столбик значений 1, 2 и 3. И легенда-это имя свойства. 2. все значения кода свойства1 сгруппированы и так далее для трех значений. И имя свойства в качестве его описания.