+# The plot is done in three steps:
+#
+# 1. Plot an undefined function to force gnuplot to use the specified xrange
+#    and yrange without rescaling them, this makes sure that changing the
+#    sampling interval later does not affect the displayed xrange.
+#
+# 2. Use the boxxyerrorbars style to draw the background choosing the color
+#    according to the month.
+#    
+#    When doing this, shift samples to make them fall in the middle of months.
+#
+#    This is needed to avoid "holes" between the boxes because samples are
+#    evenly spaced while months lengths are not, so it may happen that
+#    a sample crosses the month boundary even when it's not supposed to,
+#    resulting in two different samples to draw the same box because of
+#    start_of_month() and start_of_next_month().
+#
+#    Having some "buffering days"  can compensate  for the varying months
+#    lengths.
+#
+# 3. Finally plot the actual data