Geometric mean line
[satune.git] / src / analyzer / plot.py
1 import numpy as np
2 import matplotlib.pyplot as plt
3 IMAGEDIR = "report/pics/"
4
5 def generateHistograms(X, header):
6         global IMAGEDIR
7         for i, c in enumerate(X.T):
8                 plt.hist(c)
9                 plt.savefig(IMAGEDIR + header[i] + "-hist.pdf")
10                 plt.clf()
11
12 def generateScatterPlot(X, Y, header):
13         global IMAGEDIR
14         for i, feature in enumerate(X.T):
15                 values = np.unique(feature)
16                 values = np.sort(values)
17                 geomean = []
18                 for value in values:
19                         a =Y[np.where(feature == value)]
20                         a = np.array(map(lambda x :  x**(1.0/len(a)), a))
21                         geomean.append(a.prod())
22                 plt.plot(feature, Y, 'r.')
23                 for ii in range(0, len(geomean)-1):
24                         print(values[ii:ii + 2])
25                         print(geomean[ii:ii + 2])
26                         plt.plot(values[ii:ii + 2], geomean[ii:ii + 2], 'bo-')
27                 plt.savefig(IMAGEDIR + header[i] + "-scat.pdf")
28                 plt.clf()
29
30 def plot(data, header):
31         global IMAGEDIR
32         header=header[6:-1]
33         data = np.array(data)
34         X = data[:, 6:-4]
35         X[X==''] = '-1'
36         X = X.astype(np.float)
37         Y = data[:, -2]
38         Y = Y.astype(np.float)
39         generateHistograms(X, header)
40         generateScatterPlot(X, Y, header)
41
42         
43
44