"""Recalculer les résumés ; option --figure avec matplotlib déjà installé."""
import csv
import json
import statistics as st
from pathlib import Path
import sys

racine = Path(__file__).resolve().parent
with (racine / 'anscombe.csv').open(newline='') as fichier:
    lignes = list(csv.DictReader(fichier))
series = []
for i in range(1, 5):
    x = [float(l[f'x{i}']) for l in lignes]
    y = [float(l[f'y{i}']) for l in lignes]
    series.append((x, y))
    print(json.dumps({'serie': i, 'n': len(x), 'moyenne_x': st.mean(x),
                      'moyenne_y': st.mean(y), 'ecart_type_y_echantillon': st.stdev(y),
                      'correlation': st.correlation(x, y)}, ensure_ascii=False))
if '--figure' in sys.argv:
    import matplotlib
    matplotlib.use('Agg')
    import matplotlib.pyplot as plt
    fig, axes = plt.subplots(2, 2, figsize=(8, 7), sharex=True, sharey=True)
    for i, (ax, (x, y)) in enumerate(zip(axes.flat, series), 1):
        ax.scatter(x, y, color='#174e78', edgecolors='black', linewidths=.6, s=38)
        ax.set(title=f'Série {i}', xlabel='x (sans unité métier)', ylabel='y (sans unité métier)',
               xlim=(0, 20), ylim=(0, 14), xticks=range(0, 21, 2), yticks=range(0, 15, 2))
        ax.grid(alpha=.25)
        ax.set_axisbelow(True)
        ax.tick_params(labelbottom=True, labelleft=True)
    fig.suptitle('Quartet d’Anscombe : une paire (x, y) par point')
    fig.tight_layout()
    fig.savefig(racine / 'anscombe.svg', metadata={'Date': None})
