diff --git a/plot_scatterplot.py b/plot_scatterplot.py
index 94bb79bad09b1462cf5738944fe594feb4e376f7..9149ae820f8b5197a13383c1309fa04fe56342f4 100755
--- a/plot_scatterplot.py
+++ b/plot_scatterplot.py
@@ -83,6 +83,85 @@ class Scatterplot:
         Intended to be used with *DataFrame.apply*."""
         return "_".join(map(str, row.values))
 
+    @staticmethod
+    def put_quadrants(axis, x_annot_loc, y_annot_loc, line_style):
+        """Delineate quadrants of absolute fold changes over 2.
+
+        *axis* is the :class:`matplotlib.axes.Axes` on which to work.
+
+        *x_annot_loc* and *y_annot_loc* are the position at which to annotate
+        the lines delineating the quadrants.
+
+        This works through side effects on *axis*.
+        """
+        axis.axhline(y=1, **line_style)
+        axis.annotate(
+            f"y = 1", xy=(x_annot_loc, 1), xycoords="data",
+            horizontalalignment='left',
+            verticalalignment='bottom',
+            size="x-small",
+            color=line_style["color"])
+        axis.axhline(y=-1, **line_style)
+        axis.annotate(
+            f"y = -1", xy=(x_annot_loc, -1), xycoords="data",
+            horizontalalignment='left',
+            verticalalignment='top',
+            size="x-small",
+            color=line_style["color"])
+        axis.axvline(x=1, **line_style)
+        axis.annotate(
+            f"x = -1", xy=(-1, y_annot_loc), xycoords="data",
+            horizontalalignment='right',
+            verticalalignment='bottom',
+            rotation=90, size="x-small",
+            color=line_style["color"])
+        axis.axvline(x=-1, **line_style)
+        axis.annotate(
+            f"x = 1", xy=(1, y_annot_loc), xycoords="data",
+            horizontalalignment='left',
+            verticalalignment='bottom',
+            rotation=90, size="x-small",
+            color=line_style["color"])
+
+    @staticmethod
+    def write_quadrant_counts(axis,
+                              annot_up_up, annot_up_down,
+                              annot_down_up, annot_down_down,
+                              text_color):
+        """Annotate quadrants of absolute fold changes over 2.
+
+        *axis* is the :class:`matplotlib.axes.Axes` on which to work.
+
+        *annot_up_up*, *annot_up_down*, *annot_down_up* and *annot_down_down*
+        are the annotations to put in each quadrant.
+
+        This works through side effects on *axis*.
+        """
+        axis.annotate(
+            annot_up_up,
+            xy=(0.95, 0.95), xycoords="axes fraction",
+            size="x-small", color=text_color,
+            horizontalalignment="right",
+            verticalalignment="top")
+        axis.annotate(
+            annot_up_down,
+            xy=(0.95, 0.05), xycoords="axes fraction",
+            size="x-small", color=text_color,
+            horizontalalignment="right",
+            verticalalignment="bottom")
+        axis.annotate(
+            annot_down_up,
+            xy=(0.05, 0.95), xycoords="axes fraction",
+            size="x-small", color=text_color,
+            horizontalalignment="left",
+            verticalalignment="top")
+        axis.annotate(
+            annot_down_down,
+            xy=(0.05, 0.05), xycoords="axes fraction",
+            size="x-small", color=text_color,
+            horizontalalignment="left",
+            verticalalignment="bottom")
+
     def __init__(self,
                  x_input_file,
                  y_input_file,
@@ -152,7 +231,11 @@ class Scatterplot:
                     if gene_id in chose_from]
         return [gene_id for gene_id in self.data.query(selector).index]
 
-    def plot_maker(self, annotate_folds=True, grouping=None, group2colour=None, **kwargs):
+    def plot_maker(self,
+                   annotate_folds=True,
+                   grouping=None,
+                   group2colour=None,
+                   **kwargs):
         """Builds a plotting function that can colour dots based on them
         belonging to a group defined by *grouping*.
         If *annotate_folds* is True, lines indicating 2-fold thresholds
@@ -188,43 +271,9 @@ class Scatterplot:
                     (y_annot_loc, _) = kwargs["y_range"]
                 else:
                     y_annot_loc = min(self.data.y)
-                axis.axhline(y=1, **line_style)
-                axis.annotate(
-                    f"y = 1", xy=(x_annot_loc, 1), xycoords="data",
-                    horizontalalignment='left',
-                    verticalalignment='bottom',
-                    size="x-small",
-                    color=line_style["color"])
-                axis.axhline(y=-1, **line_style)
-                axis.annotate(
-                    f"y = -1", xy=(x_annot_loc, -1), xycoords="data",
-                    horizontalalignment='left',
-                    verticalalignment='top',
-                    size="x-small",
-                    color=line_style["color"])
-                axis.axvline(x=1, **line_style)
-                axis.annotate(
-                    f"x = -1", xy=(-1, y_annot_loc), xycoords="data",
-                    horizontalalignment='right',
-                    verticalalignment='bottom',
-                    rotation=90, size="x-small",
-                    color=line_style["color"])
-                axis.axvline(x=-1, **line_style)
-                axis.annotate(
-                    f"x = 1", xy=(1, y_annot_loc), xycoords="data",
-                    horizontalalignment='left',
-                    verticalalignment='bottom',
-                    rotation=90, size="x-small",
-                    color=line_style["color"])
-                # Number of genes beyond lfc thresholds, in each quadrant
-                # up_up = 100 * len(self.data.query(
-                #     f"x > 1 & y > 1")) / len(self.data)
-                # up_down = 100 * len(self.data.query(
-                #     f"x > 1 & y < 1")) / len(self.data)
-                # down_up = 100 * len(self.data.query(
-                #     f"x < 1 & y > 1")) / len(self.data)
-                # down_down = 100 * len(self.data.query(
-                #     f"x < 1 & y < 1")) / len(self.data)
+                Scatterplot.put_quadrants(
+                    axis, x_annot_loc, y_annot_loc, line_style)
+                # Genes beyond lfc thresholds, in each quadrant
                 up_up = self.data.query(
                     "x > 1 & y > 1")
                 up_down = self.data.query(
@@ -256,30 +305,13 @@ class Scatterplot:
                     ingroup_up_down = ""
                     ingroup_down_up = ""
                     ingroup_down_down = ""
-                axis.annotate(
+                Scatterplot.write_quadrant_counts(
+                    axis,
                     f"{len(up_up)}{ingroup_up_up}",
-                    xy=(0.95, 0.95), xycoords="axes fraction",
-                    size="x-small", color=line_style["color"],
-                    horizontalalignment="right",
-                    verticalalignment="top")
-                axis.annotate(
                     f"{len(up_down)}{ingroup_up_down}",
-                    xy=(0.95, 0.05), xycoords="axes fraction",
-                    size="x-small", color=line_style["color"],
-                    horizontalalignment="right",
-                    verticalalignment="bottom")
-                axis.annotate(
                     f"{len(down_up)}{ingroup_down_up}",
-                    xy=(0.05, 0.95), xycoords="axes fraction",
-                    size="x-small", color=line_style["color"],
-                    horizontalalignment="left",
-                    verticalalignment="top")
-                axis.annotate(
                     f"{len(down_down)}{ingroup_down_down}",
-                    xy=(0.05, 0.05), xycoords="axes fraction",
-                    size="x-small", color=line_style["color"],
-                    horizontalalignment="left",
-                    verticalalignment="bottom")
+                    line_style["color"])
             axis.set_xlabel(self.x_label, fontsize=17)
             axis.set_ylabel(self.y_label, fontsize=17)
             # This doesn't work with plt.axis("equal")