Building a Mark sentence using the redraw event to place images and using the load event to create them. Adding them to load necessary to make them available during export, and you will not want to create new images on each redraw .
These chart events are used:
events: { load: drawImages, redraw: alignImages }
In the drawImages function drawImages I use drawImages translation back to place images on a diagram:
x = chart.plotLeft + chart.xAxis[0].translate(i, false) - imageWidth / 2, y = chart.plotTop - imageWidth / 2;
and then adding them and setting the click handler, zIndex, cursor pointer:
chart.renderer.image('http://highcharts.com/demo/gfx/sun.png', x, y, imageWidth, imageWidth) .on('click', function() { location.href = 'http://example.com' }) .attr({ zIndex: 100 }) .css({ cursor: 'pointer' }) .add();
In alignImages , the attr function is used to set new x and y values ββfor images, which are calculated in the same way as in drawImages .
Full jsfiddle example
Screenshot:

source share