Previous topic

File format filter example

Next topic

Plot example

This Page

Plot canvas example¶

from terapy.plot.base import PlotCanvas

class PlotCanvasExample(PlotCanvas):
   """

       Example of plot canvas class

       Properties:
           is_data    -    if True, canvas is meant to display raw measurement data (bool)
           is_filter  -    if True, canvas is meant to display post-processed data (bool)
           dim        -    dimension of plots displayed on this canvas (int)
           name       -    name of canvas type (str)

   """
   is_data = True
   name = "Example plot"
   dim = -1
   def __init__(self, parent=None, id=-1, xlabel="Delay (ps)", ylabel="Distance (um)", xscale="linear", yscale="linear"):
       """

           Initialization.

           Parameters:
               parent    -    parent window (wx.Window)
               id        -    id (int)
               xlabel    -    label of abscissa axis (str)
               ylabel    -    label of ordinate axis (str)
               xscale    -    abscissa scale type (linear or log)
               yscale    -    ordinate scale type (linear or log)

       """
       PlotCanvas.__init__(self,parent,id, xlabel, ylabel, xscale, yscale)

   def AddPlot(self,array=None):
       """

           Add plot to canvas.

           Parameters:
               array    -    data array to be displayed (DataArray)

       """
       # Insert here what should be done to convert DataArray to plot supported by this canvas.
       # DataArray shape, data and coords variables may be useful here.
       # See DataArray documentation for details.
       pass

   def Update(self, event=None):
       """

           Update canvas display.

           Parameters:
               event    -    wx.Event

       """
       pass

   def Delete(self, event=None):
       """

           Delete canvas.

           Parameters:
               event    -    wx.Event

       """
       # Insert here what should be done when canvas is deleted.
       # E.g. delete associated plots, destroy associated window, ...
       for x in self.plots:
           self.RemovePlot(x)

   def SetName(self, name="Plot"):
       """

           Set canvas tab name.

           Parameters:
               name    -    name (str)

       """
       idx = self.parent.FindCanvas(self)
       if idx>-1:
           self.parent.SetPageText(idx,name)

   def SetImage(self, n=2):
       """

           Set canvas tab icon.

           Parameters:
               n    -    icon index in parent image list (int)

       """
       PlotCanvas.SetImage(self, n)