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