Highcharts is equipped with a rendering module that acts as a wrapper for JavaScript access to SVG in modern browsers and VML in IE < 9. lt can be used to draw basically any custom (interactive or non-interactive) shape like line, circle, custom tooltip, label, button and more.
The Renderer can be accessed through the main Highcharts object - Highcharts.Chart.renderer - or straight from the plotted chart - chart.renderer. To draw a simple shape we need to define its path or type (with size) and coordinates.
The drawing API is documented in detail at Highcharts.SVGRenderer and Highcharts.SVGElement.
Basic Renderer usage:
A basic example of a chart created using the above tool can be seen here: https://www.highcharts.com/demo/renderer
Other basic examples can be found in the API above.
Advanced Renderer real example usage:
Let's say we have a requirement to render two buttons in the top-left corner of our chart that change the series type on click.
An example implementation of the above can be found here: https://jsfiddle.net/BlackLabel/a71jqexz
Another example of implementation of a basic custom tooltip similar to the Highcharts default one can be found here: https://jsfiddle.net/BlackLabel/bfL91kmd
As you can see, SVG Renderer is a powerful tool very useful when we need to render/add/show/implement something that is not implemented in Highcharts core.