.. currentmodule:: brian2 .. plot_utils: Example: plot_utils =================== .. only:: html .. |launchbinder| image:: http://mybinder.org/badge.svg .. _launchbinder: https://mybinder.org/v2/gh/brian-team/brian2-binder/master?filepath=examples/frompapers/Stimberg_et_al_2018/plot_utils.ipynb .. note:: You can launch an interactive, editable version of this example without installing any local files using the Binder service (although note that at some times this may be slow or fail to open): |launchbinder|_ Module with useful functions for making publication-ready plots. :: def adjust_spines(ax, spines, position=5): """ Set custom visibility and position of axes ax : Axes Axes handle spines : List String list of 'left', 'bottom', 'right', 'top' spines to show position : Integer Number of points for position of axis """ for loc, spine in ax.spines.items(): if loc in spines: spine.set_position(('outward', position)) else: spine.set_color('none') # don't draw spine # turn off ticks where there is no spine if 'left' in spines: ax.yaxis.set_ticks_position('left') elif 'right' in spines: ax.yaxis.set_ticks_position('right') else: # no yaxis ticks ax.yaxis.set_ticks([]) ax.tick_params(axis='y', which='both', left='off', right='off') if 'bottom' in spines: ax.xaxis.set_ticks_position('bottom') elif 'top' in spines: ax.xaxis.set_ticks_position('top') else: # no xaxis ticks ax.xaxis.set_ticks([]) ax.tick_params(axis='x', which='both', bottom='off', top='off') def adjust_ylabels(ax,x_offset=0): ''' Scan all ax list and identify the outmost y-axis position. Setting all the labels to that position + x_offset. ''' xc = 0.0 for a in ax: xc = min(xc, (a.yaxis.get_label()).get_position()[0]) for a in ax: a.yaxis.set_label_coords(xc + x_offset, (a.yaxis.get_label()).get_position()[1])