Changeset 702


Ignore:
Timestamp:
10/20/05 16:56:42 (19 years ago)
Author:
mar637
Message:

merges from Release-2-fixes

Location:
trunk/python
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/python/asaplot.py

    r665 r702  
    1717from matplotlib.numerix import sqrt
    1818from matplotlib import rc, rcParams
     19from asap import rcParams as asaprcParams
    1920
    2021# Force use of the newfangled toolbar.
     
    5859            self.set_panels(rows, cols)
    5960
    60 
    61         # Set matplotlib default colour sequence.
    62         self.colormap = ['blue', 'green', 'red', 'cyan', 'magenta', 'yellow', 'black', 'purple', 'orange', 'pink']
     61        # Set matplotlib default colour sequence.
     62        self.colormap = "green red black cyan magenta orange blue purple yellow pink".split()
     63       
     64        c = asaprcParams['plotter.colours']
     65        if isinstance(c,str) and len(c) > 0:
     66            self.colormap = c.split()
     67
     68        self.lsalias = {"line":  [1,0],
     69                        "dashdot": [4,2,1,2],
     70                        "dashed" : [4,2,4,2],
     71                        "dotted" : [1,2],
     72                        "dashdotdot": [4,2,1,2,1,2],
     73                        "dashdashdot": [4,2,4,2,1,2]
     74                        }
     75
     76        styles = "line dashed dotted dashdot".split()
     77        c = asaprcParams['plotter.linestyles']
     78        if isinstance(c,str) and len(c) > 0:
     79            styles = c.split()
     80        s = []
     81        for ls in styles:
     82            if self.lsalias.has_key(ls):
     83                s.append(self.lsalias.get(ls))
     84            else:
     85                s.append('-')
     86        self.linestyles = s
     87
    6388        self.color = 0;
     89        self.linestyle = 0;
    6490        self.attributes = {}
    6591        self.loc = 0
     
    80106        self.axes.clear()
    81107        self.color = 0
     108        self.linestyle = 0
    82109        self.lines = []
    83110
    84 
    85     def palette(self, color, colormap=None):
     111    def palette(self, color, colormap=None, linestyle=0, linestyles=None):
    86112        if colormap:
    87             self.colormap = colormap
     113            if isinstance(colormap,list):
     114                self.colormap = colormap
     115            elif isinstance(colormap,str):
     116                self.colormap = colormap.split()
    88117        if 0 <= color < len(self.colormap):
    89118            self.color = color
     119        if linestyles:
     120            self.linestyles = []
     121            if isinstance(linestyles,list):
     122                styles = linestyles
     123            elif isinstance(linestyles,str):
     124                styles = linestyles.split()
     125            for ls in styles:
     126                if self.lsalias.has_key(ls):
     127                    self.linestyles.append(self.lsalias.get(ls))
     128                else:
     129                    self.linestyles.append(self.lsalias.get('line'))
     130        if 0 <= linestyle < len(self.linestyles):
     131            self.linestyle = linestyle
    90132
    91133    def delete(self, numbers=None):
     
    244286            for segment in self.lines[i]:
    245287                getattr(segment, "set_color")(self.colormap[self.color])
    246 
     288                if len(self.colormap)  == 1:
     289                    getattr(segment, "set_dashes")(self.linestyles[self.linestyle])
    247290            self.color += 1
    248291            if self.color >= len(self.colormap):
    249292                self.color = 0
     293
     294            if len(self.colormap) == 1:
     295                self.linestyle += 1
     296            if self.linestyle >= len(self.linestyles):
     297                self.linestyle = 0               
    250298
    251299        self.show()
     
    380428
    381429
    382     def save(self, fname=None, orientation='landscape'):
     430    def save(self, fname=None, orientation=None):
    383431        """
    384432        Save the plot to a file.
     
    401449        if fname[-3:].lower() in d:
    402450            try:
    403                 self.canvas.print_figure(fname,orientation=orientation)
    404                 print 'Written file %s' % (fname)
     451                if fname[-3:].lower() == ".ps":
     452                    w = self.figure.figwidth.get()
     453                    h = self.figure.figheight.get()                       
     454                    a4w = 8.25
     455                    a4h = 11.25
     456                   
     457                    if orientation is None:
     458                        # auto oriented
     459                        if w > h:
     460                            orientation = 'landscape'
     461                        else:
     462                            orientation = 'portrait'
     463                    ds = None
     464                    if orientation == 'landscape':
     465                        ds = min(a4h/w,a4w/h)
     466                        #self.figure.set_figsize_inches((a4h,a4w))
     467                    else:
     468                        ds = min(a4w/w,a4h/h)
     469                    ow = ds * w
     470                    oh = ds * h
     471                    self.figure.set_figsize_inches((ow,oh))
     472                    self.canvas.print_figure(fname,orientation=orientation)
     473                    print 'Written file %s' % (fname)
     474                else:                   
     475                    self.canvas.print_figure(fname)
     476                    print 'Written file %s' % (fname)
    405477            except IOError, msg:
    406478                print 'Failed to save %s: Error msg was\n\n%s' % (fname, err)
     
    408480        else:
    409481            print "Invalid image type. Valid types are:"
    410             print "ps, eps, png"
     482            print "'ps', 'eps', 'png'"
    411483
    412484
  • trunk/python/asapplotter.py

    r700 r702  
    212212        else:
    213213            self._plotter.set_panels()
    214 
    215214        for scan in scans:
    216215            self._plotter.palette(0)
Note: See TracChangeset for help on using the changeset viewer.