Plot.ly does not yet support transparent image overlays in their output, see this and that

My hack starts with the SVG output:

Adding a transparent background image to Plot.ly’s SVG output. Two changes: (a) set opacity in <g class="subplot xy" style = "opacity:0.5">, and (b) adding an image in the layer-below >> imagelayer group.

See the public gist

Implementation thoughts:

Add the following to plotly’s plot_api.js function, somewhere around line 2756. Add the option for the transparent background image, an opacity parameter, and make sure to adjust the size to fit.