diff --git a/pykat/finesse.py b/pykat/finesse.py index c6de124f4c2603991970fd3fcd4d8655bb023a40..039216a6f26f83b6bb69878965f25ac23b5327ef 100644 --- a/pykat/finesse.py +++ b/pykat/finesse.py @@ -288,7 +288,8 @@ class katRun(object): def plot(self, detectors=None, filename=None, show=True, yaxis=None, legend=True, loc=0, title=None, styles=None, - ylabel=None, y2label=None, xlabel=None, x2label=None): + ylabel=None, y2label=None, xlabel=None, x2label=None, + xlim=None, x2lim=None, ylim=None, y2lim=None): """ This will generate a plot for the output data of this particular pykat run. It will attempt to generate a plot that shows all the various traces and plots @@ -309,7 +310,12 @@ class katRun(object): styles: A dictionary which keys being the detector names and the value being a colour and linestyle of the sort 'k:' ylabel, xlabel: Text for the first plot x and y labels - y2label, x2label: Text for the second plot x and y labels + y2label, x2label: Text for the second plot x and y labels + + xlim, ylim: Limits of x- and y-axes of the first plot. List or tuple + of length 2. + x2lim, y2lim: Limits of x- and y-axes of the second plot. List or tuple + of length 2. """ import matplotlib.pyplot as pyplot import pykat.plotting as plt @@ -405,13 +411,24 @@ class katRun(object): if ylabel is None: if "abs" in kat.yaxis: ylabel = "Absolute [au]" if "re" in kat.yaxis: ylabel = "Real part [au]" - + if y2label is None: if "deg" in kat.yaxis: y2label = "Phase [deg]" if "im" in kat.yaxis: y2label = "Imaginary part [au]" + + if xlim is None: + xlim = (self.x.min(), self.x.max()) + + if x2lim is None: + x2lim = (self.x.min(), self.x.max()) + else: if ylabel is None: ylabel = "[au]" + + if xlim is None: + xlim = (self.x.min(), self.x.max()) + if xlabel is None: xlabel = self.xlabel @@ -424,16 +441,22 @@ class katRun(object): if dual_plot: ax = pyplot.subplot(2,1,1) pyplot.xlabel(xlabel, fontsize=font_label_size) - pyplot.xlim(self.x.min(), self.x.max()) pyplot.ylabel(ylabel, fontsize=font_label_size) - + pyplot.xlim(xlim[0], xlim[1]) + if ylim is not None: + pyplot.ylim(ylim[0],ylim[1]) + if title is not None: pyplot.title(title, fontsize=font_label_size) pyplot.subplot(2,1,2) pyplot.xlabel(x2label, fontsize=font_label_size) - pyplot.xlim(self.x.min(), self.x.max()) pyplot.ylabel(y2label, fontsize=font_label_size) + + pyplot.xlim(x2lim[0], x2lim[1]) + if y2lim is not None: + pyplot.ylim(y2lim[0],y2lim[1]) + else: pyplot.xlabel(xlabel, fontsize=font_label_size) pyplot.ylabel(ylabel) @@ -441,6 +464,8 @@ class katRun(object): if title is not None: pyplot.title(title, fontsize=font_label_size) + if ylim is not None: + pyplot.ylim(ylim[0],ylim[1]) pyplot.tight_layout()