Author: bugman
Date: Thu Dec 18 12:07:24 2014
New Revision: 27128
URL: http://svn.gna.org/viewcvs/relax?rev=27128&view=rev
Log:
Implemented a very basic gnuplot backend for the correlation_matrix() plotting
API function.
This is in the new lib.plotting.gnuplot module. It creates an incredibly basic
gnuplot script for
visualising the correlation matrix, assuming a text file has already been
created.
Added:
trunk/lib/plotting/gnuplot.py
Modified:
trunk/lib/plotting/__init__.py
trunk/lib/plotting/api.py
Modified: trunk/lib/plotting/__init__.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/lib/plotting/__init__.py?rev=27128&r1=27127&r2=27128&view=diff
==============================================================================
--- trunk/lib/plotting/__init__.py (original)
+++ trunk/lib/plotting/__init__.py Thu Dec 18 12:07:24 2014
@@ -24,5 +24,6 @@
# The package content list.
__all__ = [
- 'api'
+ 'api',
+ 'gnuplot'
]
Modified: trunk/lib/plotting/api.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/lib/plotting/api.py?rev=27128&r1=27127&r2=27128&view=diff
==============================================================================
--- trunk/lib/plotting/api.py (original)
+++ trunk/lib/plotting/api.py Thu Dec 18 12:07:24 2014
@@ -24,6 +24,7 @@
# relax module imports.
from lib.errors import RelaxError
+from lib.plotting import gnuplot
def correlation_matrix(format=None, matrix=None, labels=None, file=None,
dir=None, force=False):
@@ -43,6 +44,7 @@
# The supported formats.
function = {
+ 'gnuplot': gnuplot.correlation_matrix
}
# Unsupported format.
Added: trunk/lib/plotting/gnuplot.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/lib/plotting/gnuplot.py?rev=27128&view=auto
==============================================================================
--- trunk/lib/plotting/gnuplot.py (added)
+++ trunk/lib/plotting/gnuplot.py Thu Dec 18 12:07:24 2014
@@ -0,0 +1,55 @@
+###############################################################################
+# #
+# Copyright (C) 2014 Edward d'Auvergne #
+# #
+# This file is part of the program relax (http://www.nmr-relax.com). #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+# Module docstring.
+"""Module for data plotting using gnuplot."""
+
+# relax module imports.
+from lib.io import open_write_file, swap_extension
+
+
+def correlation_matrix(matrix=None, labels=None, file=None, dir=None,
force=False):
+ """Gnuplot plotting function for representing correlation matrices.
+
+ @keyword matrix: The correlation matrix. This must be a square matrix.
+ @type matrix: numpy rank-2 array.
+ @keyword labels: The labels for each element of the matrix. The same
label is assumed for each [i, i] pair in the matrix.
+ @type labels: list of str
+ @keyword file: The name of the file to create.
+ @type file: str
+ @keyword dir: The directory where the PDB file will be placed. If
set to None, then the file will be placed in the current directory.
+ @type dir: str or None
+ """
+
+ # The script file name.
+ file_name = swap_extension(file=file, ext='gnu')
+
+ # Open the script file for writing.
+ output = open_write_file(file_name, dir=dir, force=force)
+
+ # Set the plot type.
+ output.write("set pm3d map\n")
+
+ # Load and show the text data.
+ output.write("splot \"%s\" matrix\n" % file)
+
+ # Close the file.
+ output.close()
_______________________________________________
relax (http://www.nmr-relax.com)
This is the relax-commits mailing list
[email protected]
To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-commits