def addModels(self, modelNames): '''Creates TaurusCurveItems (one for each model in modelNames) and attaches them to the plot. .. note:: you can also add curves using :meth:`add_items`. :meth:`addModels` is only a more Taurus-oriented interface. :meth:`add_items` gives you more control. :param modelNames: (sequence<str> or str) the names of the models to be plotted. For convenience, string is also accepted (instead of a sequence of strings), in which case the string will be internally converted to a sequence by splitting it on whitespace and commas. Each model can optionally be composed of two parts, separated by "|" indicating X and Y components for the curve. If only one part is given, it is used for Y and X is automatically generated as an index. .. seealso:: :meth:`add_item` ''' plot = self.get_plot() # pre-process the model names modelNames = self._splitModel(modelNames) self._modelNames.extend([str(n) for n in modelNames]) if self._designMode: return # create and attach new TaurusCurveItems for m in modelNames: # split model into x and y components mx_my = m.split('|') n = len(mx_my) if n == 1: mx, my = None, mx_my[0] elif n == 2: mx, my = mx_my else: self.warning('Invalid model "%s" (Skipping)' % mx_my) # cycle styles style = next(self.style) color = style[0] linestyle = style[1:] # add the item item = make.curve(mx, my, color=color, linestyle=linestyle, linewidth=2) item.set_readonly(not self.isModifiableByUser()) plot.add_item(item) self.modelChanged.emit()
def taurusCurveMain(): from taurus.qt.qtgui.extra_guiqwt.builder import make from taurus.qt.qtgui.application import TaurusApplication from guiqwt.plot import CurveDialog from guiqwt.tools import HRangeTool from taurus.qt.qtgui.extra_guiqwt.tools import TaurusCurveChooserTool, TimeAxisTool import taurus.core.util.argparse import sys parser = taurus.core.util.argparse.get_taurus_parser() parser.set_usage("%prog [options] [<model1> [<model2>] ...]") parser.set_description("a taurus application for plotting 1D data sets") app = TaurusApplication(cmd_line_parser=parser, app_name="taurusplot2", app_version=taurus.Release.version) args = app.get_command_line_args() win = CurveDialog(edit=False, toolbar=True, wintitle="TaurusPlot2", options=dict(title="", xlabel="xlabel", ylabel="ylabel")) win.add_tool(HRangeTool) win.add_tool(TaurusCurveChooserTool) win.add_tool(TimeAxisTool) plot = win.get_plot() for a in args: mx_my = a.split('|') n = len(mx_my) if n == 1: mx, my = None, mx_my[0] elif n == 2: mx, my = mx_my else: print "Invalid model: %s\n" % mx_my parser.print_help(sys.stderr) sys.exit(1) # cycle colors style = make.style.next() color = style[0] linestyle = style[1:] plot.add_item( make.curve(mx, my, color=color, linestyle=linestyle, linewidth=2)) win.get_itemlist_panel().show() plot.set_items_readonly(False) win.show() win.exec_()
def taurusCurveMain(): from taurus.qt.qtgui.extra_guiqwt.builder import make from taurus.qt.qtgui.application import TaurusApplication from guiqwt.plot import CurveDialog from guiqwt.tools import HRangeTool from taurus.qt.qtgui.extra_guiqwt.tools import TaurusCurveChooserTool, TimeAxisTool import taurus.core.util.argparse import sys parser = taurus.core.util.argparse.get_taurus_parser() parser.set_usage("%prog [options] [<model1> [<model2>] ...]") parser.set_description("a taurus application for plotting 1D data sets") app = TaurusApplication( cmd_line_parser=parser, app_name="taurusplot2", app_version=taurus.Release.version) args = app.get_command_line_args() win = CurveDialog(edit=False, toolbar=True, wintitle="TaurusPlot2", options=dict(title="", xlabel="xlabel", ylabel="ylabel")) win.add_tool(HRangeTool) win.add_tool(TaurusCurveChooserTool) win.add_tool(TimeAxisTool) plot = win.get_plot() for a in args: mx_my = a.split('|') n = len(mx_my) if n == 1: mx, my = None, mx_my[0] elif n == 2: mx, my = mx_my else: print "Invalid model: %s\n" % mx_my parser.print_help(sys.stderr) sys.exit(1) # cycle colors style = make.style.next() color = style[0] linestyle = style[1:] plot.add_item(make.curve(mx, my, color=color, linestyle=linestyle, linewidth=2)) win.get_itemlist_panel().show() plot.set_items_readonly(False) win.show() win.exec_()