From 681c3f3fc976afed38f12e9792deaaa19e1a1110 Mon Sep 17 00:00:00 2001
From: Mark Driver <mdd31@cam.ac.uk>
Date: Tue, 1 Aug 2017 15:02:49 +0100
Subject: [PATCH] continued on the dendrogram plotting methods.

---
 .../clusteringanalysis/dendrogramplotting.py  | 30 +++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

diff --git a/solventmapcreator/clusteringanalysis/dendrogramplotting.py b/solventmapcreator/clusteringanalysis/dendrogramplotting.py
index 46aee67..f0165ad 100644
--- a/solventmapcreator/clusteringanalysis/dendrogramplotting.py
+++ b/solventmapcreator/clusteringanalysis/dendrogramplotting.py
@@ -16,11 +16,37 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+def create_and_write_dendogram(linkage_matrix, labels, filename_stem, **kwargs):
+    """This creates a dendogram plot and writesto file.
+    """
+    dendrogram_plot, dendrogram_plot_axis = create_dendogram(linkage_matrix, labels,
+                                                             kwargs.get("figsize",(15,20)))
+    append_plot_labels(dendrogram_plot_axis)
+    fileformat = kwargs.get("fileformat", "eps")
+    output_filename = create_outputfilename(filename_stem, fileformat)
+    plt.savefig(output_filename, format=fileformat)
+    plt.close(dendrogram_plot)
+    return 0
+
+def create_outputfilename(filename_stem, fileformat):
+    """This creates a
+    """
+    return plottinginput.create_output_filename_from_stem(filename_stem, fileformat)
+
 def create_dendogram(linkage_matrix, labels, figsize):
-    """Creates a 
+    """Creates a dendogram plot.
     """
     dendrogram_plot, dendrogram_plot_axis = create_plot_with_axis(figsize)
-    cluster.dendrogram(linkage_matrix, labels=labels, ax=dendrogram_plot_axis)
+    cluster.dendrogram(linkage_matrix, labels=labels, leaf_rotation=90, leaf_font_size=8,
+                       ax=dendrogram_plot_axis)
+    append_plot_labels(dendrogram_plot_axis)
+    return dendrogram_plot, dendrogram_plot_axis
+
+def append_plot_labels(plot_axis):
+    """This adds labels to the dendrogram axis.
+    """
+    plot_axis.set_xlabel("Solvent")
+    plot_axis.set_ylabel(r"Distance/kJmol^{-1}")
 
 def create_plot_with_axis(figsize):
     """Function creates plot and plot axis.
-- 
GitLab