#javascript #php #jquery #charts #highcharts
#javascript #php #jquery #Диаграммы #highcharts
Вопрос:
Highcharts.chart('container', {
chart: {
type: 'arearange',
zoomType: 'x',
scrollablePlotArea: {
minWidth: 600,
scrollPositionX: 1
}
},
title: {
text: 'Temperature variation by day'
},
xAxis: {
//type: 'datetime',
accessibility: {
rangeDescription: 'Range: Jan 1st 2017 to Dec 31 2017.'
}
},
yAxis: {
title: {
text: null
},
labels: {
enabled:true
}
},
plotOptions: {
arearange: {
dataLabels: {
enabled: true,
yLow: 5,
verticalAlign: 'bottom',
inside: true,
color: 'black',
formatter: function(e) {
if((this.x==0) amp;amp; (this.point.low==this.y))
return this.series.name
}
}
}
},
legend: {
enabled: false
},
series: [{
name: "AREA 1",
data: [
[0, 10],
[0, 10],
],
borderColor: 'black',
borderWidth: 0.2,
},
{
name: "AREA 2",
data: [
[20, 40],
[20, 40],
]
}]
});
Выше приведен пример фрагмента кода, который я построил с использованием диаграммы arearange. График успешно построен так, как я хотел. Но, похоже, есть проблема. Я хочу, чтобы названия серий «AREA1» и «AREA2» отображались в средней точке соответствующих значений по оси y. т.е. «Область 1» должна отображаться на 5 (средние точки 0 и 10), а «Область 2» должна отображаться на 30 (средние точки 20 и 40). Есть ли какой-либо способ сделать это? Я пробовал указывать yLow
значение в plotOptions. Но у меня это не сработало, поскольку данные ряда являются динамическими.
Диаграмма, которую я использую, — highcharts, версия 4.1.5
Пожалуйста, помогите!! Заранее спасибо
Ответ №1:
Вы можете добавить фиктивные ряды рассеяния с отключенными маркерами и включенными метками данных, чтобы название ряда отображалось в нужном месте:
series: [..., {
linkedTo: 0,
dataLabels: {
format: 'AREA 1'
},
type: 'scatter',
data: [(area1Data[0][0] area1Data[0][1]) / 2]
}, {
linkedTo: 1,
dataLabels: {
format: 'AREA 2'
},
type: 'scatter',
data: [(area2Data[0][0] area2Data[0][1]) / 2]
}
]
Живая демонстрация: http://jsfiddle.net/blackLabel/d01e2ymx/
Ссылка на API: https://api.highcharts.com/highcharts/series.scatter