summaryrefslogtreecommitdiff
path: root/__main__.py
blob: dc2985a7f5f60212b073c41775f3dfd315bfa966 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import os
import sys
import numpy as np

import matplotlib
# Force matplotlib to not use any Xwindows backend.
matplotlib.use('Agg')

import matplotlib.pyplot as plt

def get_plot_files(file):
    open_file = open(os.path.realpath(file),'r')
    raw_data = open_file.read()
    array = raw_data.split('* ')
    
    array.pop(0)
    dict_data = {}
    parameters = []
    parsed_files = []
    dir1 = str(file)
        
        
    if not os.path.exists(dir1[:-4]):
        os.makedirs(dir1[:-4])    
        
         
    for i in range(len(array)):
        dict_data[i] = array[i]
        
        sample = dict_data[i].split('\n')
        write_file = open(os.path.realpath(dir1[:-4])+'/parsed_%s.txt'%(i),'w')
      
        for j in sample[3:]:
            if j.startswith('Index'):
                items = j.split()
                parameters.append(items) if len(parameters) < i+1 else None
                continue
            if j.startswith('--') or '*' in j: 
                continue
            else:   
                write_file.write(j+'\n')

        parsed_files.append(os.path.realpath(dir1[:-4])+'/parsed_%s.txt'%(i))
    return parameters, parsed_files    

def parse_files(file):
    parameters, parsed_files = get_plot_files(file)  

    for plot_file, parameter in zip(parsed_files, parameters):
        data = np.loadtxt(plot_file, unpack=True, dtype=str)
        for i in range(2, len(data)):

            plt.plot([x.strip(',') for x in data[1]], [y.strip(',') for y in data[i]])
            
            try:
                plt.xlabel(parameter[1]), plt.ylabel(parameter[i]) 
                plt.title('%s  vs  %s'%(parameter[1], parameter[i]))
                plt.savefig(plot_file+str(i)+'.png'), plt.clf()
            except IndexError:
                plt.xlabel(parameter[1]), plt.ylabel('missing y label')
                plt.title('%s  vs  missing y label'%(parameter[1], ))
                plt.savefig(plot_file+str(i)+'.png'), plt.clf()
          

def main():

    files = sys.argv[1:]
    for fi in files:
        parse_files(fi)
              
if __name__ == '__main__':
    main()