from matplotlib import pyplot as plt
import numpy as np
from matplotlib.ticker import MultipleLocator

# leggiamo i dati in ingresso usando la funzione genfromtxt di numpy
dati = np.genfromtxt("misure_affondamenti.dat", skip_header=1)

# i dati vengono caricati in un np.ndarray 2d e sono accessibili tramite slice multidimensionali

# riscaliamo i dati sottraendo il valore contenuto nella prima riga
dati_scalati = dati - dati[0]

# a differenza di R non e' possibile accedere alle righe/colonne tramite label
# per cui usiamo l'indirizzamento diretto, facendo una slice dell'ndarray

x  = dati_scalati[:,0] # la prima colonna contiene le ascisse
y1 = dati_scalati[:,1]
y2 = dati_scalati[:,2]
y3 = dati_scalati[:,3]
y4 = dati_scalati[:,4]

# creiamo uno spazio per i plot
figure, ax = plt.subplots()

# e facciamo un po' di grafici
ln1, = ax.plot(x, y1, 'o-', color="darkblue", label="Cilindro 1")
ln2, = ax.plot(x, y2, 'o-', color="blue", label="Cilindro 2")
ln3, = ax.plot(x, y3, 'o-', color="orange", label="Prisma")
ln4, = ax.plot(x, y4, 'o-', color="darkgrey", label="Cono")

ax.legend(handles=[ln1, ln2, ln3, ln4])

ax.grid()
ax.yaxis.set_major_locator(MultipleLocator(5.))

ax.set_title("Massa d'acqua spostata in funzione dell'affondamento")
ax.set_xlabel("affondamento (cm)")
ax.set_ylabel("massa d'acqua spostata (g)")
figure.tight_layout()

# e mostriamo sullo schermo l'immagine risultante
figure.show()

input("Premi return per uscire")
