+# 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