Example: plot_utils
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])