#javascript #jquery #json #highcharts
#javascript #jquery #json #верхние диаграммы
Вопрос:
У меня есть простая гистограмма из 1-й серии, в которую я загружаю данные с помощью json. В моей скрипке я просто определил данные json как статическую переменную для простоты, но предпосылка та же.
Данные json образуют основу для всех свойств рядов, включая имя, и форматируются следующим образом, что согласуется со многими примерами, которые я видел:
var json = [{
"name": "Currency Allocation",
"data": [
["gbp", 0.7053985],
["usd", 0.17856322],
["eur", 0.06901525],
["chf", 0.00135777],
["jpy", 0.00815169],
["em_asia", 0.02821377],
["other", 0.00982446]
]
}];
Я бы хотел, чтобы метка, которая является первым элементом в каждом data
подмассиве, была категорией по оси x для диаграммы. Однако мне, похоже, приходится определять категории по оси x отдельно cht.xAxis.categories
. Есть ли способ избежать этого и просто использовать категории в моих данных?
Если я исключу xAxis.categories
свойство, диаграмма будет построена только с числами по оси x
Ответ №1:
Вы можете сделать это при chart.events.load
вызове и циклическом просмотре series[0].data
значений. Поскольку вы говорите, что у вас есть только одна серия на диаграмму, я также предполагаю, что у вас есть только одна xAxis
. Вы бы перебирали свои данные следующим образом:
var seriesData = this.series[0].data;
var tCategories = [];
for (i = 0; i < seriesData.length; i ) {
tCategories.push(seriesData[i].name);
}
this.xAxis[0].setCategories(tCategories);
Живая демонстрация.
Менее сложный метод заключается в определении вашего xAxis.type
как 'category'
:
"xAxis": {
"type": "category"
},
Живая демонстрация.
Комментарии:
1. Вторая часть вашего ответа — это именно то, что мне было нужно. Не удалось найти это в документах API. Спасибо