Changeset 1989


Ignore:
Timestamp:
02/14/11 17:21:55 (13 years ago)
Author:
Kana Sugimoto
Message:

New Development: Yes

JIRA Issue: Yes (CAS-1306 and ASAP-205)

Ready for Test: Yes

Interface Changes: Yes

What Interface Changed: enabled stack='r' and panel='r' in sdplot as well as

stacking='r' and panelling='r' in asapplotter.set_mode.

Test Programs: run sdplot with either stack='r' or panel='r'.

Or, asapplotter.set_mode with either stacking='r' or panelling='r',
and then asapplotter.plot

Put in Release Notes: Yes

Module(s): sdplot and asapplotter

Description: enabled row based stacking and panelling in sdplot and asapplotter.


File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/python/asapplotter.py

    r1984 r1989  
    8383            from asap.casatoolbar import CustomToolbarTkAgg
    8484            return CustomToolbarTkAgg(self)
     85            #from asap.casatoolbar import CustomFlagToolbarTkAgg
     86            #return CustomFlagToolbarTkAgg(self)
    8587        else: return None
    8688
     
    340342                 'scan' 'Scan' 's':     Scans
    341343                 'time' 'Time' 't':     Times
     344                 'row' 'Row' 'r':       Rows
     345            When either 'stacking' or 'panelling' is set to 'row',
     346            the other parameter setting is ignored.
    342347        """
    343348        msg = "Invalid mode"
     
    345350               not self.set_stacking(stacking):
    346351            raise TypeError(msg)
    347         if self._panelling == 'r':
    348             self._stacking = '_r'
    349         elif self._stacking == 'r':
    350             self._panelling = '_r'
     352        #if self._panelling == 'r':
     353        #    self._stacking = '_r'
     354        #if self._stacking == 'r':
     355        #    self._panelling = '_r'
    351356        if refresh and self._data: self.plot(self._data)
    352357        return
     
    364369            self._panelling = md
    365370            self._title = None
    366             if md == 'r':
    367                 self._stacking = '_r'
     371            #if md == 'r':
     372            #    self._stacking = '_r'
    368373            # you need to reset counters for multi page plotting
    369374            self._reset_counters()
     
    401406            self._stacking = md
    402407            self._lmap = None
    403             if md == 'r':
    404                 self._panelling = '_r'
     408            #if md == 'r':
     409            #    self._panelling = '_r'
    405410            # you need to reset counters for multi page plotting
    406411            self._reset_counters()
     
    846851        scan.set_selection(sel)
    847852        d = {'b': scan.getbeam, 's': scan.getscan,
    848              #'i': scan.getif, 'p': scan.getpol, 't': scan._gettime,
    849853             'i': scan.getif, 'p': scan.getpol, 't': scan.get_time,
    850              'r': int, '_r': int}
     854             'r': int}#, '_r': int}
    851855
    852856        polmodes = dict(zip(self._selection.get_pols(),
     
    859863        if isinstance(nstack0, int): nstack = nstack0
    860864        else: nstack = len(nstack0)
     865        # In case of row stacking
     866        rowstack = False
     867        titlemode = self._panelling
     868        if self._stacking == "r" and self._panelling != "r":
     869            rowstack = True
     870            titlemode = '_r'
    861871        nptot = n
    862872        maxpanel, maxstack = 16,16
     
    867877            asaplog.post('WARN')
    868878            nstack = min(nstack,maxstack)
    869         #n = min(n,maxpanel)
    870879        n = min(n-self._ipanel-1,maxpanel)
    871            
     880       
    872881        if n > 1:
    873882            ganged = rcParams['plotter.ganged']
     
    877886                n = min(n,self._rows*self._cols)
    878887                self._plotter.set_panels(rows=self._rows,cols=self._cols,
    879 #                                         nplots=n,ganged=ganged)
    880888                                         nplots=n,layout=self._panellayout,ganged=ganged)
    881889            else:
    882 #                self._plotter.set_panels(rows=n,cols=0,nplots=n,ganged=ganged)
    883890                self._plotter.set_panels(rows=n,cols=0,nplots=n,layout=self._panellayout,ganged=ganged)
    884891        else:
    885 #            self._plotter.set_panels()
    886892            self._plotter.set_panels(layout=self._panellayout)
    887893        #r = 0
     
    918924                self._plotter.set_axes('xlabel', xlab)
    919925                self._plotter.set_axes('ylabel', ylab)
    920                 lbl = self._get_label(scan, r, self._panelling, self._title)
    921                 #if self._panelling == 'r': lbl = ''
     926                #lbl = self._get_label(scan, r, self._panelling, self._title)
     927                lbl = self._get_label(scan, r, titlemode, self._title)
    922928                if isinstance(lbl, list) or isinstance(lbl, tuple):
    923929                    if 0 <= panelcount < len(lbl):
     
    925931                    else:
    926932                        # get default label
    927                         lbl = self._get_label(scan, r, self._panelling, None)
     933                        #lbl = self._get_label(scan, r, self._panelling, None)
     934                        lbl = self._get_label(scan, r, titlemode, None)
    928935                self._plotter.set_axes('title',lbl)
    929936                newpanel = True
     
    936943                   
    937944            #if (b > b0 or newpanel) and stackcount < nstack:
    938             if stackcount < nstack and (newpanel or (a == a0 and b > b0)):
     945            if stackcount < nstack and (newpanel or rowstack or (a == a0 and b > b0)):
    939946                y = []
    940947                if len(polmodes):
     
    989996                    allxlim.sort()
    990997                    self._plotter.subplots[panelcount-1]['axes'].set_xlim([allxlim[0],allxlim[-1]])
    991                     # clear
    992                     allxlim =[]
     998                    if ganged:
     999                        allxlim = [allxlim[0],allxlim[-1]]
     1000                    else:
     1001                        # clear
     1002                        allxlim =[]
    9931003
    9941004            newpanel = False
     
    9981008            if (panelcount == n and stackcount == nstack) or (r == nr-1):
    9991009                # last panel -> autoscale y if ganged
    1000                 if rcParams['plotter.ganged'] and len(allylim) > 0:
     1010                #if rcParams['plotter.ganged'] and len(allylim) > 0:
     1011                if ganged and len(allylim) > 0:
    10011012                    allylim.sort()
    10021013                    self._plotter.set_limits(ylim=[allylim[0],allylim[-1]])
     
    10341045            lsorts = []
    10351046            for order in lorders:
     1047                if order == "r":
     1048                    # don't sort if row panelling/stacking
     1049                    return None
    10361050                ssort = d0[order]
    10371051                if ssort:
     
    10711085        d1 = {'b': scan.getbeamnos, 's': scan.getscannos,
    10721086             'i': scan.getifnos, 'p': scan.getpolnos, 't': scan.ncycle,
    1073              'r': scan.nrow, '_r': False}
     1087             'r': scan.nrow}#, '_r': False}
    10741088        d2 = { 'b': self._selection.get_beams(),
    10751089               's': self._selection.get_scans(),
     
    10771091               'p': self._selection.get_pols(),
    10781092               't': self._selection.get_cycles(),
    1079                'r': False, '_r': 1}
     1093               'r': False}#, '_r': 1}
    10801094        n =  d2[self._panelling] or d1[self._panelling]()
    10811095        nstack = d2[self._stacking] or d1[self._stacking]()
     1096        # handle row panelling/stacking
     1097        if self._panelling == 'r':
     1098            nstack = 1
     1099        elif self._stacking == 'r':
     1100            n = 1
    10821101        return n,nstack
    10831102
Note: See TracChangeset for help on using the changeset viewer.