tools/plot-values/plot.py
author Dmitriy Morozov <dmitriy@mrzv.org>
Mon Jul 25 23:21:29 2011 -0700 (10 months ago)
branchdev
changeset 244 66235db8d8b7
parent 13896030f8d2f2c
permissions -rwxr-xr-x
Added cohomology/candidates counter to i/t/cohomology-persistence.hpp
dmitriy@138
     1
#!/usr/bin/env python
dmitriy@138
     2
dmitriy@138
     3
from    pylab           import scatter, show, cm, colorbar, savefig, axis, \
dmitriy@138
     4
                               figure, xlim, axes, hsv, subplots_adjust as adjust
dmitriy@138
     5
from    itertools       import izip
dmitriy@138
     6
from    sys             import argv, exit
dmitriy@138
     7
import  os.path         as     osp
dmitriy@138
     8
dmitriy@138
     9
dmitriy@138
    10
def plot(val_fn, pts_fn, output_fn):
dmitriy@138
    11
    points = []
dmitriy@138
    12
    with open(pts_fn) as fp:
dmitriy@138
    13
        for line in fp.xreadlines():
dmitriy@138
    14
            points.append(map(float, line.split()))
dmitriy@138
    15
    
dmitriy@138
    16
    values = []
dmitriy@138
    17
    with open(val_fn) as fp:
dmitriy@138
    18
        for line in fp.xreadlines():
dmitriy@138
    19
            values.append(float(line.split()[1]))
dmitriy@138
    20
dmitriy@138
    21
    xx = [pt[0] for pt in points]
dmitriy@138
    22
    yy = [pt[1] for pt in points]
dmitriy@138
    23
    print "X:", min(xx), max(xx)
dmitriy@138
    24
    print "Y:", min(yy), max(yy)
dmitriy@138
    25
dmitriy@138
    26
    m = min(values)
dmitriy@138
    27
    values = [(v-m) % 1. for v in values]
dmitriy@138
    28
    print "V:", min(values), max(values)
dmitriy@138
    29
dmitriy@138
    30
    # hsv()
dmitriy@141
    31
    fig = figure()
dmitriy@141
    32
    scatter(xx,yy,s=10,c=values)
dmitriy@141
    33
    colorbar()
dmitriy@141
    34
    
dmitriy@138
    35
    # ax = fig.add_axes([-.05,-.1,1.1,1.1])
dmitriy@138
    36
    ax = axes()
dmitriy@138
    37
    ax.set_axis_off()
dmitriy@138
    38
    ax.set_aspect('equal', 'box')
dmitriy@138
    39
    # adjust(0,0,1,1,0,0)
dmitriy@141
    40
dmitriy@138
    41
    fig.savefig(output_fn)
dmitriy@138
    42
dmitriy@138
    43
if __name__ == '__main__':
dmitriy@138
    44
    if len(argv) < 3:
dmitriy@138
    45
        print "Usage: %s VALUES POINTS" % argv[0]
dmitriy@138
    46
        exit()
dmitriy@138
    47
dmitriy@138
    48
    val_fn = argv[1]
dmitriy@138
    49
    pts_fn  = argv[2]
dmitriy@138
    50
    output_fn, ext = osp.splitext(val_fn)
dmitriy@138
    51
    output_fn += '.pdf'
dmitriy@138
    52
    plot(val_fn, pts_fn, output_fn)