Source code for deltasigma._figureMagic

# -*- coding: utf-8 -*-
# _figureMagic.py
# Module providing figureMagic()
# Copyright 2013 Giuseppe Venturini
# This file is part of python-deltasigma.
#
# python-deltasigma is a 1:1 Python replacement of Richard Schreier's
# MATLAB delta sigma toolbox (aka "delsigma"), upon which it is heavily based.
# The delta sigma toolbox is (c) 2009, Richard Schreier.
#
# python-deltasigma is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# LICENSE file for the licensing terms.

"""Module providing the utility function figureMagic()
"""

from __future__ import division

from warnings import warn

import numpy as np
import pylab as plt


[docs]def figureMagic(xRange=None, dx=None, xLab=None, yRange=None, dy=None, yLab=None, size=None, name=None): """Utility function to quickly set plot parameters. **Parameters:** xRange : 2 elements sequence, optional set the x-axis limits dx : scalar, optional set the ticks spacing on the x-axis xLab : any, optional Ignored variable, only accepted for compatibility with the MATLAB syntax. yRange : 2 elements sequence, optional set the y-axis limits dy : scalar, optional set the ticks spacing on the y-axis yLab : any, optional Ignored variable, only accepted for compatibility with the MATLAB syntax. size : 2-elements sequence, optional Figure size, in inches. name : string, optional Title for the current plot (or subplot) All parameters are optional and any unspecified figure parameter is left untouched. .. plot:: import numpy as np import pylab as plt from deltasigma import figureMagic t = np.linspace(0, 1) a = np.sin(2*np.pi*t + np.pi/4) plt.subplot(121) plt.plot(t, a) plt.title("Before") plt.subplot(122) plt.plot(t, a) plt.title("After") figureMagic([0, 1], dx=.1, xLab=None, yRange=[-1.2, 1.2], dy=.2, yLab=None, size=(8, 4), name="After") .. seealso:: :func:`changeFig` to quickly change low-level plot parameters such as font and marker size, the linewidth, or to prepare a plot for printing in B/W. """ fig = plt.gcf() if size is not None and len(size): fig.set_size_inches(size) plt.grid(True) ax = plt.gca() if name is not None: ax.set_title(name, fontsize=14) if xRange is not None or yRange is not None: ax.set_autoscale_on(False) ax.set_aspect('auto', 'box') if xRange is not None: ax.set_xlim(xRange) if yRange is not None: ax.set_ylim(yRange) if dx is not None: x1, x2 = ax.get_xlim() ax.xaxis.set_ticks(np.arange(x1, x2, dx)) if dy is not None: y1, y2 = ax.get_ylim() ax.yaxis.set_ticks(np.arange(y1, y2, dy)) # ax.xaxis.set_major_formatter(ticker.FormatStrFormatter('%0.1f')) if xLab is not None: warn(('figureMagic() got xLab=%s, but xLab is not implemented and ' + 'will be ignored.') % xLab) if yLab is not None: warn(('figureMagic() got yLab=%s, but xLab is not implemented and ' + 'will be ignored.') % yLab) return