Для создания изогнутой линии со стрелками на обоих концах будет лучше использовать комбинацию renderer.path
и renderer.symbol('triangle')
.Я создал для вас пример с горизонтальными стрелками, протестируйте его и измените способ работы так, как вам нравится.
var arrWidth = 14,
arrHeight = 25,
startX = 80,
startY = 200,
endX = 200,
endY = 100,
renderer;
renderer = new Highcharts.Renderer(
$('#container')[0],
800,
800
);
renderer.symbol('triangle', startX - arrWidth/2, startY - arrHeight, arrWidth, arrHeight)
.attr({
fill: '#D3D3D3',
rotation: -90,
rotationOriginX: startX,
rotationOriginY: startY
}).add();
renderer.symbol('triangle', endX - arrWidth/2, endY - arrHeight, arrWidth, arrHeight)
.attr({
fill: '#D3D3D3',
rotation: 90,
rotationOriginX: endX,
rotationOriginY: endY
}).add();
renderer.path([
'M',
startX,
startY,
'C',
(startX + endX) / 2,
startY,
(startX + endX) / 2,
endY,
endX,
endY
]).attr({
stroke: '#D3D3D3',
'stroke-width': 2,
dashstyle: 'dash'
}).add();
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>
<div id="container" style="height: 300px"></div>
Демо:
Ссылка API: