Source code for sciplot.decorations

# -*- coding: utf-8 -*-
"""

"""

from .helpers import manager
import matplotlib.pyplot as plt
# from matplotlib.font_manager import FontProperties


[docs]def draw_y_label(label='Entries', unit=None, ha='right', *args, **kwargs): """Plotting scientific notation y label Args: label: unit: ha: *args: **kwargs: Returns: """ x_axis = manager.get_x_axis() if unit is None: plt.ylabel(label, ha=ha, *args, **kwargs) else: try: width = x_axis[1] - x_axis[0] except TypeError: plt.ylabel(label+' / ' + unit, ha=ha, *args, **kwargs) else: plt.ylabel(label+' / %.3f' % width + ' ' + unit, ha=ha, *args, **kwargs)
[docs]def watermark(t1="Collaboration", t2="(preliminary)", px=0.5, py=0.9, fontsize=16, alpha=0.95, *args, **kwargs): # font = FontProperties() # font.set_style('italic') # font.set_weight('bold') plt.text(px, py, t1, ha='right', transform=plt.gca().transAxes, fontsize=fontsize, style='italic', alpha=alpha, *args, **kwargs, weight='bold', # fontproperties=font, # bbox={'facecolor':'#377eb7', 'alpha':0.1, 'pad':10} ) plt.text(px + 0.02, py, t2, ha='left', transform=plt.gca().transAxes, fontsize=fontsize, # style='italic', alpha=alpha, *args, **kwargs # fontproperties=font, # bbox={'facecolor':'#377eb7', 'alpha':0.1, 'pad':10} )
[docs]def expand(factor=1.2): plt.ylim(0, plt.ylim()[1] * factor)
[docs]def set_style(): plt.ticklabel_format(style='sci', axis='y', scilimits=(-3, 4), useMathText=True) ax = plt.gca() ax.yaxis.set_ticks_position('both') ax.xaxis.set_ticks_position('both') plt.minorticks_on() # plt.tight_layout() plt.subplots_adjust(left=0.15, right=0.92, top=0.92, bottom=0.15)
[docs]def labels(xlabel=None, ylabel=None, unit=None, root_style=False, *args, **kwargs): ha = 'center' x,y = .5, .5 if root_style: ha = 'right' x,y = 1,1 if xlabel is not None: plt.xlabel(xlabel, horizontalalignment=ha, x=x, *args, **kwargs) if unit is not None: if unit is not '': plt.xlabel(xlabel + ' [' + unit + ']', ha=ha, x=x, *args, **kwargs) if ylabel is not None: draw_y_label(ylabel, unit, horizontalalignment=ha, y=y, *args, **kwargs) else: if xlabel is not None: plt.xlabel(xlabel, horizontalalignment=ha, x=x, *args, **kwargs) if ylabel is not None: draw_y_label(ylabel, horizontalalignment=ha, y=y, *args, **kwargs)
[docs]def decorate( *args, **kwargs): labels( *args, **kwargs)