Hello,
I have multiple graphs and I want to sync the range of all the graphs. I use plotly_relayout event on the graphs but if I use ploly.relayout function to change the range of the other graph the function will be recall for the other graph and it will make an infinite loop.
So is there a way to disable the events ? or a parameter for ploly.relayout to don’t call the callback function for plotly_relayout event ?
here’s a workaround: http://codepen.io/etpinard/pen/vXrRLR
I’m using Angular and each Angular graph component subscribes to a service which emits to all graph components if one of them changes.
I simply can’t fix that same infinite loop bug no matter what I try. Been fighting it for a couple of days now. @etienne’s workaround sadly doesn’t work for me.
Weird part is, it only happens when I double-click to zoom out. Otherwise it works and I can keep the zoom synchronized without starting the infinite loop. Ideas?
Hi all,
I would benefit for such a feature a lot. Workarounds are hard to maintain and introduce bugs.
I think what exposed here is a general requirement, since in relayout handlers often there is a need to relayout other charts as well, and every call to relayout triggers another relayout event, with the risk of running into an infinite loop.
Is there a better approach to this?
Thanks,
/A
Use update () instead of Relayout () like this
Plotly.update(myPlot, {}, updates)
that way you update the layout without calling the Relayout () event
Thanks @Sataroga! This solution is much simpler than the workaround (which I was also implementing)!