Changeset 2150


Ignore:
Timestamp:
04/22/11 18:21:29 (13 years ago)
Author:
Kana Sugimoto
Message:

New Development: No

JIRA Issue: No (a fix)

Ready for Test: Yes

Interface Changes: added a new method new_asaplot() to module asapplotter which returns asaplot instance based on your backend selection.

What Interface Changed:

Test Programs: sdaverage, sdsmooth with verify=True and plotlevel > 0

Put in Release Notes: No

Module(s):

Description: proper handling of plotting in non-TkAgg? backend.


Location:
trunk/python
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/python/asapfitter.py

    r2047 r2150  
    538538            return
    539539        if not self._p or self._p.is_dead:
    540             if rcParams['plotter.gui']:
    541                 from asap.asaplotgui import asaplotgui as asaplot
    542             else:
    543                 from asap.asaplot import asaplot
    544             self._p = asaplot()
     540            #if rcParams['plotter.gui']:
     541            #    from asap.asaplotgui import asaplotgui as asaplot
     542            #else:
     543            #    from asap.asaplot import asaplot
     544            #self._p = asaplot()
     545            from asap.asapplotter import new_asaplot
     546            self._p = new_asaplot(rcParams['plotter.gui'])
    545547        self._p.hold()
    546548        self._p.clear()
  • trunk/python/asapmath.py

    r2139 r2150  
    33from asap.logging import asaplog, asaplog_post_dec
    44from asap.selector import selector
    5 from asap import asaplotgui
     5#from asap import asaplotgui
     6from asap.asapplotter import new_asaplot
    67
    78@asaplog_post_dec
     
    311312        asaplog.push('Plot only first spectrum for each [if,pol] pairs to verify calibration.')
    312313        asaplog.post('WARN')
    313         p=asaplotgui.asaplotgui()
     314        #p=asaplotgui.asaplotgui()
     315        p=new_asaplot()
    314316        #nr=min(6,len(ifnos)*len(polnos))
    315317        nr=len(ifnos)*len(polnos)
     
    388390        x=raw_input('Accept calibration ([y]/n): ' )
    389391        if x.upper() == 'N':
    390             p.unmap()
     392            p.quit()
    391393            del p
    392394            return scabtab
    393         p.unmap()
     395        p.quit()
    394396        del p
    395397    ###
     
    530532        asaplog.push('Plot only first spectrum for each [if,pol] pairs to verify calibration.')
    531533        asaplog.post('WARN')
    532         p=asaplotgui.asaplotgui()
     534        #p=asaplotgui.asaplotgui()
     535        p=new_asaplot()
    533536        #nr=min(6,len(ifnos)*len(polnos))
    534537        nr=len(ifnos)*len(polnos)
     
    607610        x=raw_input('Accept calibration ([y]/n): ' )
    608611        if x.upper() == 'N':
    609             p.unmap()
     612            p.quit()
    610613            del p
    611614            return scabtab
    612         p.unmap()
     615        p.quit()
    613616        del p
    614617    ###
     
    742745        asaplog.push('Plot only first spectrum for each [if,pol] pairs to verify calibration.')
    743746        asaplog.post('WARN')
    744         p=asaplotgui.asaplotgui()
     747        #p=asaplotgui.asaplotgui()
     748        p=new_asaplot()
    745749        #nr=min(6,len(ifnos)*len(polnos))
    746750        nr=len(ifnos)/2*len(polnos)
     
    811815        x=raw_input('Accept calibration ([y]/n): ' )
    812816        if x.upper() == 'N':
    813             p.unmap()
     817            p.quit()
    814818            del p
    815819            return scabtab
    816         p.unmap()
     820        p.quit()
    817821        del p
    818822    ###
  • trunk/python/asapplotter.py

    r2147 r2150  
    88
    99import re
     10
     11def new_asaplot(visible=None,**kwargs):
     12    """
     13    Returns a new asaplot instance based on the backend settings.
     14    """
     15    if visible == None:
     16        visible = rcParams['plotter.gui']
     17
     18    backend=matplotlib.get_backend()
     19    if not visible:
     20        from asap.asaplot import asaplot
     21    elif backend == 'TkAgg':
     22        from asap.asaplotgui import asaplotgui as asaplot
     23    elif backend == 'Qt4Agg':
     24        from asap.asaplotgui_qt4 import asaplotgui as asaplot
     25    elif backend == 'GTkAgg':
     26        from asap.asaplotgui_gtk import asaplotgui as asaplot
     27    else:
     28        from asap.asaplot import asaplot
     29    return asaplot(**kwargs)
    1030
    1131class asapplotter:
     
    6686
    6787    def _newplotter(self, **kwargs):
    68         backend=matplotlib.get_backend()
    69         if not self._visible:
    70             from asap.asaplot import asaplot
    71         elif backend == 'TkAgg':
    72             from asap.asaplotgui import asaplotgui as asaplot
    73         elif backend == 'Qt4Agg':
    74             from asap.asaplotgui_qt4 import asaplotgui as asaplot
    75         elif backend == 'GTkAgg':
    76             from asap.asaplotgui_gtk import asaplotgui as asaplot
    77         else:
    78             from asap.asaplot import asaplot
    79         return asaplot(**kwargs)
     88        return new_asaplot(self._visible,**kwargs)
    8089
    8190    def _newcasabar(self):
  • trunk/python/scantable.py

    r2144 r2150  
    20302030
    20312031        if plot:
    2032             if rcParams['plotter.gui']:
    2033                 from asap.asaplotgui import asaplotgui as asaplot
    2034             else:
    2035                 from asap.asaplot import asaplot
    2036             self._p=asaplot()
    2037             self._p.set_panels()
     2032            from asap.asapplotter import new_asaplot
     2033            theplot = new_asaplot(rcParams['plotter.gui'])
     2034            theplot.set_panels()
    20382035            ylab=s._get_ordinate_label()
    2039             #self._p.palette(0,["#777777","red"])
     2036            #theplot.palette(0,["#777777","red"])
    20402037            for r in xrange(s.nrow()):
    20412038                xsm=s._getabcissa(r)
     
    20432040                xorg=orgscan._getabcissa(r)
    20442041                yorg=orgscan._getspectrum(r)
    2045                 self._p.clear()
    2046                 self._p.hold()
    2047                 self._p.set_axes('ylabel',ylab)
    2048                 self._p.set_axes('xlabel',s._getabcissalabel(r))
    2049                 self._p.set_axes('title',s._getsourcename(r))
    2050                 self._p.set_line(label='Original',color="#777777")
    2051                 self._p.plot(xorg,yorg)
    2052                 self._p.set_line(label='Smoothed',color="red")
    2053                 self._p.plot(xsm,ysm)
     2042                theplot.clear()
     2043                theplot.hold()
     2044                theplot.set_axes('ylabel',ylab)
     2045                theplot.set_axes('xlabel',s._getabcissalabel(r))
     2046                theplot.set_axes('title',s._getsourcename(r))
     2047                theplot.set_line(label='Original',color="#777777")
     2048                theplot.plot(xorg,yorg)
     2049                theplot.set_line(label='Smoothed',color="red")
     2050                theplot.plot(xsm,ysm)
    20542051                ### Ugly part for legend
    20552052                for i in [0,1]:
    2056                     self._p.subplots[0]['lines'].append([self._p.subplots[0]['axes'].lines[i]])
    2057                 self._p.release()
     2053                    theplot.subplots[0]['lines'].append([theplot.subplots[0]['axes'].lines[i]])
     2054                theplot.release()
    20582055                ### Ugly part for legend
    2059                 self._p.subplots[0]['lines']=[]
     2056                theplot.subplots[0]['lines']=[]
    20602057                res = raw_input("Accept smoothing ([y]/n): ")
    20612058                if res.upper() == 'N':
    20622059                    s._setspectrum(yorg, r)
    2063             self._p.unmap()
    2064             self._p = None
     2060            theplot.quit()
     2061            del theplot
    20652062            del orgscan
    20662063
Note: See TracChangeset for help on using the changeset viewer.