diff --git a/src/utilities/dplot/dplot.m b/src/utilities/dplot/dplot.m
index 575da70c1336be3bb7dba77f801e221625c77d73..62d618896003a5020c76a42ed2927b8bc122aee3 100644
--- a/src/utilities/dplot/dplot.m
+++ b/src/utilities/dplot/dplot.m
@@ -7,7 +7,7 @@ function dplot(varargin)
 % >> toto = dseries(randn(100,3), dates('2000Q1'), {'x','y','z'});
 % >> noddy = dseries(randn(100,3), dates('2000Q1'), {'x','y','z'});
 % >> b = 3;
-% >> dplot --expression 2/b*cumsum(x/y(-1)-1) --dseries toto --dseries noddy --range 2001Q1:2024Q1
+% >> dplot --expression 2/b*cumsum(x/y(-1)-1) --dseries toto --dseries noddy --range 2001Q1:2024Q1 --title 'This is my plot'
 %
 % Will produce plots of 2*cumsum(x/y(-1)-1), where x and y are variables in objects toto and noddy,
 % in the same figure.
@@ -15,7 +15,9 @@ function dplot(varargin)
 % INPUTS
 % --expression    followed by a mathematical expression involving variables available in the dseries objects, dseries methods, numbers or parameters.
 % --dseries       followed by the name of a dseries object available in the workspace.
-% --range         followed by a dates range
+% --range         followed by a dates range.
+% --style         followed by the name (without extension) of a matlab script, can be used to apply styling commands to the produced plot.
+% --title         followed by a row char array, sets the plot title.
 % --with-legend   prints a legend below the produced plot.
 %
 % REMARKS
@@ -143,6 +145,19 @@ function dplot(varargin)
     if iswithlegend(varargin)
         legend(legendnames{:}, 'Location','SouthOutside','Orientation','horizontal','Box','off')
     end
+
+    % Styling
+    script = getstyle(varargin);
+    if ~isempty(script)
+        eval(script)
+    end
+
+    % Set title
+    str = gettile(varargin);
+    if ~isempty(str)
+        str
+        title(str)
+    end
 end
 
 function expr = getexpressions(cellarray)
@@ -220,7 +235,50 @@ function range = getrange(cellarray)
 
 end
 
-function [epos, dpos, rpos, zpos] = positions(cellarray)
+function script = getstyle(cellarray)
+
+% Return period range for the plots.
+%
+% INPUTS
+% - cellarray     [char]      1×n cell array of row char arrays.
+%
+% OUTPUTS
+% - script        [char]      name of the styling script
+
+    [~, ~, ~, ~, spos] = positions(cellarray);
+
+    if isempty(spos)
+        script = '';
+        return
+    end
+
+    script = cellarray{spos+1};
+
+end
+
+function title = gettile(cellarray)
+
+% Return period range for the plots.
+%
+% INPUTS
+% - cellarray     [char]      1×n cell array of row char arrays.
+%
+% OUTPUTS
+% - script        [char]      name of the styling script
+
+    [~, ~, ~, ~, ~, tpos] = positions(cellarray);
+
+    if isempty(tpos)
+        title = '';
+        return
+    end
+
+    title = cellarray{tpos+1};
+
+end
+
+
+function [epos, dpos, rpos, zpos, spos, tpos] = positions(cellarray)
 
 % Return  positions of the arguments.
 %
@@ -233,7 +291,7 @@ function [epos, dpos, rpos, zpos] = positions(cellarray)
 % - rpos          [integer]   scalar, index of the --range argument.
 % - zpos          [integer]   first index of non --expression argument.
 
-    % Indices for --expression arguments.
+% Indices for --expression arguments.
     epos = find(strcmp('--expression', cellarray));
     if isempty(epos)
         error('dplot::positions: --expression argument is mandatory.')
@@ -245,7 +303,7 @@ function [epos, dpos, rpos, zpos] = positions(cellarray)
     end
     % Index for --range argument.
     rpos = find(strcmp('--range', cellarray));
-    assert(length(rpos)==1 || length(rpos)==0, 'dplot::positions: Only one range is allowed.')
+    assert(length(rpos)==1 || isempty(rpos), 'dplot::positions: Only one range is allowed.')
     % Define index for the first argument name different from --expression
     if isempty(rpos)
         zpos = dpos(1);
@@ -253,7 +311,13 @@ function [epos, dpos, rpos, zpos] = positions(cellarray)
         zpos = min(dpos(1), rpos);
     end
     % Check that expressions are coming before other arguments
-    assert(max(epos)<zpos, 'dplot::positions: --expression must come befor the other arguments.')
+    assert(max(epos)<zpos, 'dplot::positions: --expression must come before the other arguments.')
+    % Index for --style argument
+    spos = find(strcmp('--style', cellarray));
+    assert(length(spos)==1 || isempty(spos), 'dplot::positions: Only one style script is allowed.')
+    % Index for --title argument
+    tpos = find(strcmp('--title', cellarray));
+    assert(length(tpos)==1 || isempty(tpos), 'dplot::positions: Only one title is allowed.')
 end
 
 function m = allowedmethods()