''' Various way to plot 1D and 2D histograms '''
#Nicolas Enfon - LSIS DYNI - 28/04/2014
from matplotlib.pyplot import *
import numpy as np
from math import factorial as fact

fulldata = 'ToutReadmeAntaresV3_21houronly.txt'
filename = 'iciZiphiuscol1216.txt'
sunname = 'sunrise_sunset_2012.csv'
moonname = ''

#import data
data = np.loadtxt(filename, delimiter=',')
#if Data


#Hist 1D
def hist1dall(data, figx=10, figy=10, bins=100, savename=None):
    figure(figsize=(10,10))
    for i in xrange(len(data[0])):
        subplot(len(data[0]),1,i)
        hist(data[:,i], bins=bins)
	title('data['+str(i)+'])
    if savename != None:
	savefig(savename)

#Hist 2D
def hist2dall(data, figx=10, figy=10, bins=100, savename=None):
    '''plots all the possible pairs of comparison'''
    figure(figsize=(figx,figy))
    combin = lambda k,n: fact(int(n))//(fact(int(k))*fact(int(n-k)))
    index = 1
    for i in xrange(len(data[0]) - 1):
        for j in xrange(i+1, len(data[0])):
	    subplot(combin(2,len(data[0])), 1, index)
	    index += 1
	    H, xedges, yedges = np.histogram2d(data[:,i],data[:,j],bins=bins)
	    imshow(H, interpolation='nearest', origin='low', extent=[xedges[0], xedges[-1], yedges[0], yedges[-1]])
	    title('data['+str(i)+'] VS data['+str(j)+']')
    if savename != None:
	savefig(savename)

#To remove the 5
file = open('ToutReadmeAntaresV3_21.2.txt','r')
output = open('test.txt','w')
lines = file.readlines()
for line in lines:
    linesplit = line.split(',')
    for i in xrange(len(linesplit)):
	#print i
	if i != 14 and i != 17:
	    print linesplit[i]
	    output.write(linesplit[i])
	    output.write(',')
	elif i == 14:
	    output.write(linesplit[i][:-1])
	    output.write(',')
	elif i == 17:
	    output.write(linesplit[i])

#To get the histogram for Sperm Whale:
data = data * 0.000512 #conversion en secondes
hist(data[:,1],bins=100,range=(0.05,2))
#Ziphius:
hist(data[:,0],bins=40,range=(0.01,0.15))

#TODO: aller voir les exemples ou ICI faibles

#We want to see if Z and P are present at the same time
phy = phy=[0.6<data[i,1]<1.2 for i in xrange(len(data))]
ziph=[0.06<data[i,0]<0.12 for i in xrange(len(data))]
