Index: trunk/tools/drawing.py
===================================================================
--- trunk/tools/drawing.py	(revision 686)
+++ trunk/tools/drawing.py	(revision 687)
@@ -1813,5 +1813,5 @@
       ncfilens= [filen] ',' separated list of netCDF files
       values= [dimvname];[valuesaxis];[dimtit];[leglabels];[vtit];[title];[timevals];[locleg];
-        [graphk];[collines];[points];[pointfreq];[period]
+        [graphk];[collines];[points];[linewidths];[pointsizes];[pointfreq];[period]
         [dimvname]: ',' list of names of the variables with he values of the common dimension
         [valuesaxis]: which axis will be used for the values ('x', or 'y')
@@ -1841,4 +1841,8 @@
         [points]: ',' list of type of points for the lines, None for automatic, single
           value all the same
+        [linewidths]: ',' list of widths for the lines, None for automatic, single
+          value all the same
+        [pointsizes]: ',' list of widths for the lines, None for automatic, single
+          value all the same
         [pointfreq]: frequency of point plotting, 'all' for all time steps
         [period]: which period to plot
@@ -1858,5 +1862,5 @@
     expectargs = '[dimvname];[valuesaxis];[dimtit];[leglabels];[vtit];[title];'
     expectargs = expectargs + '[timevals];[locleg];[graphk];[lines];[collines];[points];'
-    expectargs = expectargs + '[pointfreq];[period]'
+    expectargs = expectargs + '[linewidths];[pointsizes];[pointfreq];[period]'
     drw.check_arguments(fname,len(expectargs.split(';')),values,';',expectargs)
 
@@ -1874,6 +1878,8 @@
     collines0 = values.split(';')[10]
     points0 = values.split(';')[11]
-    pointfreq0 = values.split(';')[12]
-    period = values.split(';')[13]
+    linewidths0 = values.split(';')[12]
+    pointsizes0 = values.split(';')[13]
+    pointfreq0 = values.split(';')[14]
+    period = values.split(';')[15]
 
     Nfiles = len(ncfiles)
@@ -1904,5 +1910,5 @@
     if collines0.find(',') != -1:
         collines = collines0.split(',')
-    elif collines == 'None':
+    elif collines0 == 'None':
         collines = None
     else:
@@ -1920,4 +1926,26 @@
         for ip in range(Nfiles):
             points.append(points0)
+
+# Multiple line sizes?
+    if linewidths0.find(',') != -1:
+        linewidths = []
+        Nlines = len(linewidths0.split(','))
+        for il in Nlines:
+          linewidths.append(np.float(linewidths0.split(',')[il]))
+    elif linewidths0 == 'None':
+        linewidths = None
+    else:
+        linewidths = [np.float(linewidths0)]
+
+# Multiple point sizes?
+    if pointsizes0.find(',') != -1:
+        pointsizes = []
+        Npts = len(pointsizes0.split(','))
+        for ip in Npts:
+          pointsizes.append(np.float(pointsizes0.split(',')[ip]))
+    elif pointsizes0 == 'None':
+        pointsizes = None
+    else:
+        pointsizes = [np.float(pointsizes0)]
 
 # Getting values
@@ -2062,5 +2090,5 @@
     drw.plot_lines_time(dimvalues, varvalues, valuesaxis, dimtit, legvals, vartit,   \
       varunits, timepos, timelabels, title, locleg, graphk, lines, collines, points, \
-      pointfreq)
+      linewidths, pointsizes, pointfreq)
 
     return
Index: trunk/tools/drawing_tools.py
===================================================================
--- trunk/tools/drawing_tools.py	(revision 686)
+++ trunk/tools/drawing_tools.py	(revision 687)
@@ -17,7 +17,11 @@
 fillValueF = 1.e20
 
+colorsauto = ['#FF0000', '#00FF00', '#0000FF', '#FF00FF', '#00FFFF', '#FFAA00',     \
+  '#AA0000', '#00AA00', '#0000AA', '#AA00AA', '#00AAAA', '#AA3200']
 pointkindsauto = ['.', ',', 'x', '+', '*', '|', '_', 'o', '<', '>', 'v', '^',       \
   's', 'D', 'p' ,'h' ,'H']
 linekindsauto = ['-', '--', '-.', ':']
+linewidthsauto = [1.]
+pointsizesauto = [7.]
 
 ####### Funtions
@@ -5399,4 +5403,165 @@
     return
 
+def ColorsLinesPointsStyles(Nstyles, colors, lines, points, lwidths, psizes, ptfreq):
+    """ Function to provide the colors, lines & points styles
+      Nstyles= total number of styles
+      colors= list of colors, None for no value
+      lines= list of lines, None for no value
+      points= list of points, None for no value
+      lwidths= list of line widths, None for no value
+      psizes= list of point sizes, None for no value
+      ptfreq= frequency for the points, None for all values
+    >>> Nstyles = 3
+    >>> colors = ['blue']
+    >>> lines = ['-']
+    >>> points = ['x', '*', 'o']
+    >>> lwidths = ['1']
+    >>> psizes = ['2']
+    >>> ptfreq = 2
+    >>> colors, lines, points = ColorsLinesPointsStyles(Nstyles, colors, lines, points, lwidths, psizes, ptfreq)
+    ['blue', 'blue', 'blue']
+    ['-', '-', '-']
+    ['x', '*', 'o']
+    ['2', '2', '2']
+    ['1', '1', '1']
+    """
+    fname = 'ColorsLinesPointsStyles'
+
+    usecolors = []
+    uselines = []
+    usepoints = []
+    usewlines = []
+    usespoints = []
+
+# Colors
+    if colors is None:
+        Ncols = len(colorsauto)
+        for ic in range(Nstyles):
+            iic = np.mod(ic,Ncols) - 1
+            if iic == 0: iic = Ncols - 1
+            usecolors.append(colorsauto[iic])
+    else:
+        Ncols = len(colors)
+        if Ncols == 1:
+            for ic in range(Nstyles):
+                usecolors.append(colors[0])
+        else:
+            if Ncols != Nstyles:
+                print errormsg
+                print '  ' + fname + ': number of provided colors:', Ncols,          \
+                  'and required:', Nstyles,'differ !!'
+                quit(-1)
+            usecolors = colors
+
+# Lines
+    if lines is None:
+        Nklns = len(linekindsauto)
+        for il in range(Nstyles):
+            iil = np.mod(il,Nklns) - 1
+            if iil == 0: iil = Nklns - 1
+            uselines.append(linekindsauto[iil])
+    else:
+        Nklns = len(lines)
+        if Nklns == 1:
+            for il in range(Nstyles):
+                uselines.append(lines[0])
+        else:
+            if Nklns != Nstyles:
+                print errormsg
+                print '  ' + fname + ': number of provided lines:', Nklns,           \
+                  'and required:', Nstyles,'differ !!'
+                quit(-1)
+            uselines = lines
+
+# Points
+    if points is None:
+        Nkpts = len(pointkindsauto)
+        for ip in range(Nstyles):
+            iip = np.mod(ip,Nkpts) - 1
+            if iip == 0: iip = Nkpts - 1
+            usepoints.append(pointkindsauto[iip])
+    else:
+        Nkpts = len(points)
+        if Nkpts == 1:
+            for ip in range(Nstyles):
+                usepoints.append(points[0])
+        else:
+            if Nkpts != Nstyles:
+                print errormsg
+                print '  ' + fname + ': number of provided points:', Nkpts,          \
+                  'and required:', Nstyles,'differ !!'
+                quit(-1)
+            usepoints = points
+
+# Line widths
+    if lwidths is None:
+        Nwlns = len(linewidthsauto)
+        for il in range(Nstyles):
+            iil = np.mod(il,Nwlns) - 1
+            if iil == 0: iil = Nwlns - 1
+            usewlines.append(linewidthsauto[iil])
+    else:
+        Nwlns = len(lwidths)
+        if Nwlns == 1:
+            for il in range(Nstyles):
+                usewlines.append(lwidths[0])
+        else:
+            if Nwlns != Nstyles:
+                print errormsg
+                print '  ' + fname + ': number of provided line widthss:', Nwlns,    \
+                  'and required:', Nstyles, 'differ !!'
+                quit(-1)
+            usewlines = lwidths
+
+# Point sizes
+    if psizes is None:
+        Nspts = len(pointsizesauto)
+        for ip in range(Nstyles):
+            iip = np.mod(ip,Nspts) - 1
+            if iip == 0: iip = Nspts - 1
+            usespoints.append(pointsizesauto[iip])
+    else:
+        Nspts = len(psizes)
+        if Nspts == 1:
+            for ip in range(Nstyles):
+                usespoints.append(psizes[0])
+        else:
+            if Nspts != Nstyles:
+                print errormsg
+                print '  ' + fname + ': number of provided point sizes:', Nspts,     \
+                  'and required:', Nstyles, 'differ !!'
+                quit(-1)
+            usespoints = psizes
+
+    Ncols = len(usecolors)
+    Nlins = len(uselines)
+    Npnts = len(usepoints)
+
+    lkinds = []
+    pkinds = []
+
+    lcolors = usecolors
+
+# Old way
+#    if ptfreq is not None:
+#        lkinds = uselines
+#        pkinds = usepoints
+#    else:
+#        pkinds = usepoints
+#        lkinds = uselines
+#        for ilp in range(Nstyles):
+#            lkinds.append(usepoints[ilp] + uselines[ilp])
+            
+    return lcolors, uselines, usepoints, usewlines, usespoints
+
+#Nstyles = 3
+#colors = ['blue']
+#lines = ['-']
+#points = ['x', '*', 'o']
+#lwidths = ['2']
+#psizes = ['1']
+#ptfreq = 2
+#print ColorsLinesPointsStyles(Nstyles, colors, lines, points, lwidths, psizes, ptfreq)
+
 def LinesPointsStyles(Nstyles, lines, points, ptfreq):
     """ Function to provide the lines & points styles
@@ -5463,4 +5628,5 @@
         pkinds = usepoints
     else:
+        pkinds = usepoints
         for ilp in range(Nstyles):
             lkinds.append(usepoints[ilp] + uselines[ilp])
@@ -5469,5 +5635,5 @@
 
 def plot_lines_time(vardv, varvv, vaxis, dtit, linesn0, vtit, vunit, tpos, tlabs,    \
-  gtit, gloc, kfig, lsl, coll, ptl, ptf):
+  gtit, gloc, kfig, lsl, coll, ptl, lwidth, psize, ptf):
     """ Function to plot a collection of lines with a time axis
       vardv= list of set of dimension values
@@ -5491,6 +5657,8 @@
       ptl= ',' list of type of points for the lines, None for automatic, single
           value all the same
+      lwidth= ',' list of line widths
+      psize= ',' list of point sizes
       ptf= frequency of point plotting, 'all' for all time steps
- 
+
       plot_lines([np.arange(10)], [np.sin(np.arange(10)*np.pi/2.5)], 'y', 'time (s)',      \
   ['2.5'], 'sin', '-', 'sinus frequency dependency', 'pdf')
@@ -5505,5 +5673,6 @@
     Ntraj = len(vardv)
 
-    linekinds, pointkinds = LinesPointsStyles(Ntraj, lsl, ptl, ptf)
+    colvalues, linekinds, pointkinds, lwidths, psizes = ColorsLinesPointsStyles(     \
+      Ntraj, coll, lsl, ptl, lwidth, psize,  ptf)
 
     plt.rc('text', usetex=True)
@@ -5522,19 +5691,18 @@
     if vaxis == 'x':
         for il in range(Ntraj):
-            if coll is None:
-                if ptf is None:
-                    plt.plot(varvv[il], vardv[il], linekinds[il], label= linesn[il])
-                else:
-                    plt.plot(varvv[il], vardv[il], linekinds[il])
-                    plt.plot(varvv[il][::ptf], vardv[il][::ptf], pointkinds[il],     \
-                      label= linesn[il])
-            else:
-                if ptf is None:
-                    plt.plot(varvv[il], vardv[il], linekinds[il], label= linesn[il], \
-                      color=coll[il])
-                else:
-                    plt.plot(varvv[il], vardv[il], linekinds[il], color=coll[il])
-                    plt.plot(varvv[il][::ptf], vardv[il][::ptf], pointkinds[il],     \
-                      label= linesn[il], color=coll[il])
+            plt.plot(varvv[il], vardv[il], linekinds[il], marker=pointkinds[il],     \
+              label=linesn[il], color=colvalues[il], linewidth=lwidths[il],          \
+              markersize=psizes[il], markevery=ptf)
+
+# Old way
+#            if ptf is None:
+#                plt.plot(varvv[il], vardv[il], linekinds[il], label= linesn[il],     \
+#                  color=colvalues[il], linewidth=lwidths[il], markersize=psizes[il])
+#            else:
+#                plt.plot(varvv[il], vardv[il], linekinds[il], color=colvalues[il],   \
+#                  linewidth=lwidths[il])
+#                plt.plot(varvv[il][::ptf], vardv[il][::ptf], pointkinds[il],         \
+#                  label= linesn[il], color=colvalues[il], linewidth=lwidths[il],     \
+#                  markersize=psizes[il])
 
             minvv = np.min(varvv[il])
@@ -5558,19 +5726,18 @@
     else:
         for il in range(Ntraj):
-            if coll is None:
-                if ptf is None:
-                    plt.plot(vardv[il], varvv[il], linekinds[il], label= linesn[il])
-                else:
-                    plt.plot(vardv[il], varvv[il], linekinds[il])
-                    plt.plot(vardv[il][::ptf], varvv[il][::ptf], pointkinds[il],     \
-                      label= linesn[il])
-            else:
-                if ptf is None:
-                    plt.plot(vardv[il], varvv[il], linekinds[il], label= linesn[il], \
-                      color=coll[il])
-                else:
-                    plt.plot(vardv[il], varvv[il], linekinds[il], color=coll[il])
-                    plt.plot(vardv[il][::ptf], varvv[il][::ptf], pointkinds[il],      \
-                      label= linesn[il], color=coll[il])
+            plt.plot(vardv[il], varvv[il], linekinds[il], marker=pointkinds[il],     \
+              label=linesn[il], color=colvalues[il], linewidth=lwidths[il],          \
+              markersize=psizes[il], markevery=ptf)
+
+# Old way
+#            if ptf is None:
+#                plt.plot(vardv[il], varvv[il], linekinds[il], label= linesn[il],     \
+#                  color=colvalues[il], linewidth=lwidths[il], markersize=psizes[il], markevery=ptf)
+#            else:
+#                plt.plot(vardv[il], varvv[il], linekinds[il], color=coll[il],        \
+#                  linewidth=lwidths[il])
+#                plt.plot(vardv[il][::ptf], varvv[il][::ptf], pointkinds[il],         \
+#                  label= linesn[il], color=colvalues[il], linewidth=lwidths[il],     \
+#                  markersize=psizes[il])
 
             minvv = np.min(varvv[il])
