diff --git a/bin/test_plot.py b/bin/test_plot.py index b1938edc7032d74cd93aa9430df8198144f81cb3..9c601dc90b980236261d7fdc6c3d387298a64e79 100644 --- a/bin/test_plot.py +++ b/bin/test_plot.py @@ -1,5 +1,5 @@ import pykat -pykat.init_pykat_plotting() +#pykat.init_pykat_plotting() from pykat import finesse from pykat.detectors import * @@ -32,7 +32,7 @@ attr m1 Rc 1 kat = finesse.kat() kat.parseCommands(code) -kat.add(xaxis("log", [1, 360], kat.m2.phi, 500)) +kat.add(xaxis("lin", [1, 360], kat.m2.phi, 500)) kat.m1.Rcx = -1000.0 kat.m1.Rcy = -1000.0 @@ -43,4 +43,4 @@ kat.maxtem = 0 out = kat.run() -fig = out.plot() \ No newline at end of file +fig = out.plot(styles={'circ':'c:'}, yaxis="log abs:deg") \ No newline at end of file diff --git a/pykat/finesse.py b/pykat/finesse.py index 43cf7d53687382a4bfb33b3cec6e96219beba643..881be1d8b90ae58624735eff04a914ef68a9f701 100644 --- a/pykat/finesse.py +++ b/pykat/finesse.py @@ -259,7 +259,7 @@ class katRun(object): print("One xaxis used: %s" % kat.xaxis.getFinesseText()) - def plot(self, detectors=None, filename=None, show=True, yaxis=None, legend=True, loc=0, title=None): + def plot(self, detectors=None, filename=None, show=True, yaxis=None, legend=True, loc=0, title=None, styles=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 @@ -275,6 +275,7 @@ class katRun(object): legend: True | False - whether to include a legend loc: Location value for the legend, the usual matplotlib one. title: Provide a title for the plot if required. + styles: A dictionary which keys being the detector names and the value being a colour and linestyle of the sort 'k:' """ import matplotlib.pyplot as pyplot import pykat.plotting as plt @@ -349,12 +350,15 @@ class katRun(object): for det in detectors: if not getattr(kat, det).noplot: - if not dual_plot: - plot_cmd1(self.x, _func1(self[det]), label=det) - else: + if dual_plot: ax = pyplot.subplot(2,1,1) + + if styles is not None and det in styles: + l, = plot_cmd1(self.x, _func1(self[det]), styles[det], label=det) + else: l, = plot_cmd1(self.x, _func1(self[det]), label=det) - + + if dual_plot: pyplot.subplot(2,1,2) plot_cmd2(self.x, _func2(self[det]), color=l.get_color(), ls=l.get_linestyle(), label=det)