given that highcharts is just svg you can always go directly and manipulate the svg to show the images you want, usually with just css. you can inspect the chart with chrome's web inspector and find the elements you want to style. i have to warn you though that having customized highcharts myself in the past has made upgrading to newer versions difficult.


you can add another scatter plot to your series that contains specific markers:


you can use renderer.image() to add images in any place on chart


i found a solution by chance because of a logging code i forgot to remove. you can access the data inside the method formatter using "this":

plotoptions: {
    series: {
        datalabels: {
            usehtml: true,
            enabled: true,
            x: -50,
            y: -50,
            formatter: function(){
                return '<span>'+this.y+'</span><br/>'+this.series+'<img src="'+this.key+'" />';

this code surely isn't working, but shows up the idea, doesn't it? hope it helps!


you can use a trick of having two x-axes, one with images and offset'ed to the top of the chart and one with the usual labels at the bottom:

xaxis: [{
    offset: -290,
    tickwidth: 0,
    linewidth: 0,
    categories: ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'],
    labels: {
        x: 5,
        usehtml: true,
        formatter: function () {
            return '<img src=""><img>&nbsp;';
}, {
    linkedto: 0,
    categories: ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec']

full example on jsfiddle

enter image description here

Related Query

More Query from same tag