Доступ к значениям данных в c3js в событиях данных
Я пытаюсь выяснить, есть ли способ получить доступ к значениям из Company
массив данных в onclick
событие. Пока что использую api
функции, которые я получаю только к Users
массив.
var chartCompany = c3.generate({
bindto: '#users-chart',
data: {
x: 'Company',
url: '/ajax_call',
mimeType: 'json',
type: 'bar',
axes: {
Company: 'x'
},
onclick: function (d, i) { console.log(chartCompany.data()); }
},
axis: {
x: {
type: 'category',
show: false
},
}
});
И ответ JSON с сервера:
{
"Company": ["Company 1", "Company 2", "Company 2"],
"Users" : [10, 20, 30]
}
Любая помощь / идеи будут высоко оценены.
[Редактировать 1] Чтобы уточнить мой вопрос: при нажатии на данные от пользователей (которые отображаются в виде столбцов), я хотел бы получить соответствующую компанию.
[Правка 2] Рабочий статический пример: http://jsfiddle.net/et37a9t2/
1 ответ
После долгих испытаний разных вещей я, наконец, просто посмотрел на сам объект диаграммы и обнаружил свойство categories
, Это заполняется, когда ось X объявляется типовой категорией, как в моем случае. Таким образом, чтобы получить данные от оси х, нужно вызвать .categories()
функция.
...
},
onclick: function (d, i) { console.log(chartCompany.categories()[d.index]); }
},
...
При нажатии на полосу на графике будет возвращена соответствующая категория.