Ignore:
Timestamp:
09/29/05 16:35:59 (19 years ago)
Author:
mar637
Message:

added user customisable color and linestyles

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/Release-2-fixes/python/asaplot.py

    r671 r693  
    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()
Note: See TracChangeset for help on using the changeset viewer.