Source code for holoviews.plotting.plotly.util

import plotly.graph_objs as go


[docs]def add_figure(fig, subfig, r, c, idx): """ Combines a figure with an existing figure created with plotly.tools.make_subplots, by adding the data and merging axis layout options. """ ref = fig._grid_ref[r][c][0][1:] layout = replace_refs(subfig['layout'], ref) fig['layout']['xaxis%s'%ref].update(layout.get('xaxis', {})) fig['layout']['yaxis%s'%ref].update(layout.get('yaxis', {})) fig['layout']['annotations'].extend(layout.get('annotations', [])) for d in subfig['data']: fig.append_trace(d, r+1, c+1)
[docs]def replace_refs(obj, ind): """ Replaces xref and yref to allow combining multiple plots """ if isinstance(obj, go.graph_objs.PlotlyList): return [replace_refs(o, ind) for o in obj] elif isinstance(obj, go.graph_objs.PlotlyDict): new_obj = {} for k, v in obj.items(): if k in ['xref', 'yref']: v = '{ax}{ind}'.format(ax=k[0], ind=ind) new_obj[k] = replace_refs(v, ind) return new_obj else: return obj