| 
0
 | 
     1 #!/usr/bin/env python
 | 
| 
 | 
     2 
 | 
| 
 | 
     3 import argparse
 | 
| 
 | 
     4 import os
 | 
| 
 | 
     5 import sklearn.manifold
 | 
| 
 | 
     6 import numpy
 | 
| 
 | 
     7 import math
 | 
| 
 | 
     8 import pylab
 | 
| 
 | 
     9 
 | 
| 
 | 
    10 if __name__ == "__main__":
 | 
| 
 | 
    11     parser = argparse.ArgumentParser(
 | 
| 
 | 
    12         description="""2D multidimenisnal scaling of NxN matrices with scatter plot"""
 | 
| 
 | 
    13         )
 | 
| 
 | 
    14 
 | 
| 
 | 
    15     parser.add_argument("-i", "--input", dest="sm",
 | 
| 
 | 
    16                     required=True,
 | 
| 
 | 
    17                     help="Path to the input file.")
 | 
| 
 | 
    18     parser.add_argument("--oformat", default='png', help="Output format (png, svg)")
 | 
| 
 | 
    19     parser.add_argument("-o", "--output", dest="output_path",
 | 
| 
 | 
    20                     help="Path to the output file.")
 | 
| 
 | 
    21 
 | 
| 
 | 
    22     args = parser.parse_args()
 | 
| 
 | 
    23     mds = sklearn.manifold.MDS( n_components=2, max_iter=300, eps=1e-6, dissimilarity='precomputed' )
 | 
| 
 | 
    24     data = numpy.fromfile( args.sm )
 | 
| 
 | 
    25     d = math.sqrt( len(data) )
 | 
| 
 | 
    26     sm = numpy.reshape( data, ( d,d ))
 | 
| 
 | 
    27     pos = mds.fit( sm ).embedding_
 | 
| 
 | 
    28     pylab.scatter( pos[:,0],pos[:,1] )
 | 
| 
 | 
    29     pylab.savefig( args.output_path, format=args.oformat )
 |