diff --git a/@report_series/writeSeriesForGraph.m b/@report_series/writeSeriesForGraph.m
index bde8687a6ecba8de6a61e104725508864dd66773..61afce9a9b9ee6586bc3651bc4d2b8cb535c7d0a 100644
--- a/@report_series/writeSeriesForGraph.m
+++ b/@report_series/writeSeriesForGraph.m
@@ -70,57 +70,30 @@ assert(~(strcmp(o.graphLineStyle, 'none') && isempty(o.graphMarker)), ['@report_
 assert(isempty(o.graphVline) || (isdates(o.graphVline) && o.graphVline.ndat == 1), ...
     '@report_series.writeSeriesForGraph: graphVline must be a dates of size one');
 assert(isempty(o.graphHline) || isnumeric(o.graphHline), ...
-       '@report_series.writeSeriesForGraph: graphHline must a single numeric value');
+    '@report_series.writeSeriesForGraph: graphHline must a single numeric value');
 
 % Zero tolerance
 assert(isfloat(o.zeroTol), '@report_series.write: zeroTol must be a float');
 
-%% graphVline
-
+%% graphVline && graphHline
+if ~isempty(o.graphVline)
+    fprintf(fid, '%%Vertical Line\n\\begin{pgfonlayer}{background1}\n\\draw');
+    writeLineOptions(o, fid);
+    stringsdd = strings(xrange);
+    x = find(strcmpi(date2string(o.graphVline), stringsdd));
+    fprintf(fid, ['(axis cs:%d,\\pgfkeysvalueof{/pgfplots/ymin}) -- (axis ' ...
+        'cs:%d,\\pgfkeysvalueof{/pgfplots/ymax});\n\\end{pgfonlayer}\n'], ...
+        x, x);
+end
+if ~isempty(o.graphHline)
+    fprintf(fid, '%%Horizontal Line\n\\begin{pgfonlayer}{background1}\n\\draw');
+    writeLineOptions(o, fid);
+    fprintf(fid, ['(axis cs:\\pgfkeysvalueof{/pgfplots/xmin},%f) -- (axis ' ...
+        'cs:\\pgfkeysvalueof{/pgfplots/xmax},%f);\n\\end{pgfonlayer}\n'], ...
+        o.graphHline, o.graphHline);
+end
 if ~isempty(o.graphVline) || ~isempty(o.graphHline)
-    for i=1:o.graphVline.ndat
-        fprintf(fid, '%%vline %d\n\\begin{pgfonlayer}{background1}\n\\draw[color=%s,%s,line width=%fpt,line join=round',...
-                i, o.graphLineColor, o.graphLineStyle, o.graphLineWidth);
-        if ~isempty(o.graphMarker)
-            if isempty(o.graphMarkerEdgeColor)
-                o.graphMarkerEdgeColor = o.graphLineColor;
-            end
-        if isempty(o.graphMarkerFaceColor)
-            o.graphMarkerFaceColor = o.graphLineColor;
-        end
-        fprintf(fid, ',mark=%s,mark size=%f,every mark/.append style={draw=%s,fill=%s}',...
-                o.graphMarker,o.graphMarkerSize,o.graphMarkerEdgeColor,o.graphMarkerFaceColor);
-        end
-        if ~isempty(o.graphMiscTikzAddPlotOptions)
-            fprintf(fid, ',%s', o.graphMiscTikzAddPlotOptions);
-        end
-        stringsdd = strings(xrange);
-        x = find(strcmpi(date2string(o.graphVline(i)), stringsdd));
-        fprintf(fid, ['] (axis cs:%d,\\pgfkeysvalueof{/pgfplots/ymin}) -- (axis ' ...
-                      'cs:%d,\\pgfkeysvalueof{/pgfplots/ymax});\n\\end{pgfonlayer}\n'], ...
-                x, x);
-    end
-
-    if ~isempty(o.graphHline)
-        fprintf(fid, '%%hline %d\n\\begin{pgfonlayer}{background1}\n\\draw[color=%s,%s,line width=%fpt,line join=round',...
-                i, o.graphLineColor, o.graphLineStyle, o.graphLineWidth);
-        if ~isempty(o.graphMarker)
-            if isempty(o.graphMarkerEdgeColor)
-                o.graphMarkerEdgeColor = o.graphLineColor;
-            end
-        if isempty(o.graphMarkerFaceColor)
-            o.graphMarkerFaceColor = o.graphLineColor;
-        end
-        fprintf(fid, ',mark=%s,mark size=%f,every mark/.append style={draw=%s,fill=%s}',...
-                o.graphMarker,o.graphMarkerSize,o.graphMarkerEdgeColor,o.graphMarkerFaceColor);
-        end
-        if ~isempty(o.graphMiscTikzAddPlotOptions)
-            fprintf(fid, ',%s', o.graphMiscTikzAddPlotOptions);
-        end
-        fprintf(fid, ['] (axis cs:\\pgfkeysvalueof{/pgfplots/xmin},%f) -- (axis ' ...
-                      'cs:\\pgfkeysvalueof{/pgfplots/xmax},%f);\n\\end{pgfonlayer}\n'], ...
-                o.graphHline, o.graphHline);
-    end
+    % return since the code below assumes that o.data exists
     return
 end
 
@@ -141,8 +114,19 @@ if any(stz)
     thedata(stz) = 0;
 end
 
-fprintf(fid, '%%series %s\n\\addplot[color=%s,%s,line width=%fpt,line join=round',...
-        o.data.name{:}, o.graphLineColor, o.graphLineStyle, o.graphLineWidth);
+fprintf(fid, '%%series %s\n\\addplot', o.data.name{:});
+writeLineOptions(o, fid);
+fprintf(fid,'\ntable[row sep=crcr]{\nx y\\\\\n');
+for i=1:ds.dates.ndat
+    fprintf(fid, '%d %f\\\\\n', i, thedata(i));
+end
+fprintf(fid,'};\n');
+end
+
+function writeLineOptions(o, fid)
+fprintf(fid, '[color=%s,%s,line width=%fpt,line join=round',...
+    o.graphLineColor, o.graphLineStyle, o.graphLineWidth);
+
 if ~isempty(o.graphMarker)
     if isempty(o.graphMarkerEdgeColor)
         o.graphMarkerEdgeColor = o.graphLineColor;
@@ -151,14 +135,10 @@ if ~isempty(o.graphMarker)
         o.graphMarkerFaceColor = o.graphLineColor;
     end
     fprintf(fid, ',mark=%s,mark size=%f,every mark/.append style={draw=%s,fill=%s}',...
-            o.graphMarker,o.graphMarkerSize,o.graphMarkerEdgeColor,o.graphMarkerFaceColor);
+        o.graphMarker,o.graphMarkerSize,o.graphMarkerEdgeColor,o.graphMarkerFaceColor);
 end
 if ~isempty(o.graphMiscTikzAddPlotOptions)
     fprintf(fid, ',%s', o.graphMiscTikzAddPlotOptions);
 end
-fprintf(fid,']\ntable[row sep=crcr]{\nx y\\\\\n');
-for i=1:ds.dates.ndat
-    fprintf(fid, '%d %f\\\\\n', i, thedata(i));
-end
-fprintf(fid,'};\n');
+fprintf(fid,']');
 end