import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D


joueuses = np.array([
    [25, 20, 46],
    [36, 51, 30],
    [16, 33, 42],
    [37, 38, 39],
    [11, 16, 46],
    [25, 25, 54],
    [32, 64, 16],
    [54, 30, 6],
    [14, 32, 14],
    [23, 33, 45],
    [16, 44, 35],
    [27, 44, 28],
    [21, 4, 35],
    [22, 25, 43],
    [21, 69, 19],
    [33, 25, 21],
    [10, 35, 43],
    [20, 48, 32],
    [8, 7, 25],
    [32, 32, 47],
    [46, 32, 46],
    [28, 35, 38],
    [39, 19, 31],
    [26, 23, 39],
    [28, 35, 34],
    [34, 19, 47],
    [25, 11, 51],
    [10, 25, 47],
    [45, 38, 31],
    [31, 17, 14],
    [52, 47, 19],
    [27, 28, 52],
    [27, 32, 29],
    [20, 26, 43],
    [29, 55, 4],
    [26, 16, 45],
    [31, 30, 51],
    [24, 51, 43],
    [12, 28, 44],
    [9, 28, 30],
    [14, 27, 32],
    [24, 56, 26],
    [22, 39, 46],
    [25, 60, 41],
    [34, 78, 51],
    [43, 42, 39],
    [28, 41, 40],
    [37, 32, 45],
    [20, 15, 33],
    [41, 38, 30],
    [26, 78, 73],
    [31, 48, 25],
    [33, 61, 49],
    [34, 36, 45],
    [40, 21, 62],
    [66, 47, 74],
    [44, 33, 47],
    [37, 16, 11],
    [59, 67, 84],
    [35, 43, 62],
    [24, 50, 63],
    [77, 57, 40],
    [0, 37, 75],
    [38, 91, 81],
    [37, 60, 75],
    [48, 40, 44],
    [43, 57, 55],
    [59, 60, 78],
    [49, 48, 67],
    [25, 82, 44],
    [54, 57, 28],
    [39, 56, 18],
    [19, 41, 42],
    [25, 39, 62],
    [5, 77, 58],
    [61, 67, 36],
    [71, 61, 46],
    [70, 44, 71],
    [44, 66, 50],
    [18, 100, 29],
    [38, 42, 45],
    [37, 73, 46],
    [21, 52, 83],
    [30, 77, 50],
    [6, 61, 68],
    [36, 74, 85],
    [48, 31, 70],
    [48, 68, 80],
    [30, 50, 68],
    [49, 54, 72],
    [41, 47, 67],
    [25, 65, 43],
    [52, 48, 48],
    [45, 73, 82],
    [31, 58, 40],
    [38, 73, 29],
    [34, 40, 67],
    [32, 33, 19],
    [34, 7, 31],
    [35, 57, 61],
    [71, 67, 58],
    [68, 60, 26],
    [65, 68, 60],
    [58, 65, 90],
    [100, 54, 76],
    [76, 92, 75],
    [73, 59, 91],
    [80, 61, 77],
    [68, 66, 71],
    [73, 77, 60],
    [75, 50, 76],
    [79, 72, 77],
    [57, 49, 57],
    [76, 74, 61],
    [64, 79, 98],
    [84, 70, 65],
    [89, 68, 64],
    [54, 85, 100],
    [59, 57, 69],
    [78, 87, 74],
    [93, 58, 40],
    [62, 54, 89],
    [37, 39, 96],
    [74, 76, 51],
    [74, 74, 71],
    [54, 43, 75],
    [78, 63, 86],
    [60, 68, 42],
    [52, 47, 78],
    [73, 73, 83],
    [63, 52, 46],
    [70, 65, 60],
    [87, 47, 82],
    [72, 47, 65],
    [55, 59, 70],
    [74, 58, 38],
    [75, 54, 66],
    [77, 49, 63],
    [85, 70, 46],
    [82, 71, 69],
    [53, 72, 57],
    [71, 75, 60],
    [68, 69, 84],
    [55, 58, 63],
    [66, 60, 86],
    [52, 30, 84],
    [64, 54, 38],
    [59, 72, 63],
    [73, 61, 89],
    [60, 52, 54],
], dtype=int)

performances = [3.0, 3.9, 3.0, 3.8, 2.5, 3.5, 3.7, 3.0, 2.0, 3.4, 3.2, 3.3, 2.0, 3.0, 3.6, 2.6, 2.9, 3.3, 1.4, 3.7, 4.1, 3.3, 3.0, 2.9, 3.3, 3.3, 2.9, 2.7, 3.8, 2.1, 3.9, 3.6, 2.9, 3.0, 2.9, 2.9, 3.7, 3.9, 2.8, 2.2, 2.5, 3.5, 3.6, 4.2, 5.4, 4.1, 3.7, 3.8, 2.3, 3.7, 5.9, 3.5, 4.8, 3.8, 4.1, 6.2, 4.1, 2.1, 7.0, 4.7, 4.6, 5.8, 3.7, 7.0, 5.7, 4.4, 5.2, 6.6, 5.5, 5.0, 4.7, 3.8, 3.4, 4.2,
                4.7, 5.5, 5.9, 6.2, 5.3, 4.9, 4.2, 5.2, 5.2, 5.2, 4.5, 6.5, 5.0, 6.6, 4.9, 5.8, 5.2, 4.4, 4.9, 6.7, 4.3, 4.6, 4.7, 2.8, 2.4, 5.1, 6.5, 5.1, 6.4, 7.1, 7.6, 8.1, 7.4, 7.3, 6.9, 7.0, 6.7, 7.6, 5.4, 7.0, 8.0, 7.3, 7.4, 8.0, 6.2, 8.0, 6.4, 6.8, 5.7, 6.7, 7.3, 5.7, 7.5, 5.6, 5.9, 7.6, 5.4, 6.5, 7.2, 6.2, 6.1, 5.7, 6.5, 6.3, 6.7, 7.4, 6.1, 6.9, 7.4, 5.9, 7.1, 5.5, 5.2, 6.5, 7.4, 5.5]


saison2 = joueuses


# fonction pour représenter le nuage lorsque k=3


def affiche(saison2, polesdefinitifs, k):
    '''affiche le nuage de points dans le cas k=3 en catégorisant saison2 selon les poles definitifs obtenu par les k_moyennes (on  colorie de la mm couleur les poles les plus proche d'un pole donné)'''

    fig1 = plt.figure()

    ax = fig1.gca(projection='3d')

    color = ["purple", "cyan", "orange", "yellow", "gray", "black", "pink"]

    for kk in range(3):  # k=3
        data = [], [], []
        for i in range(len(saison2)):
            if pole_le_plus_proche(polesdefinitifs, saison2[i]) == kk:

                data[0].append(saison2[i][0])
                data[1].append(saison2[i][1])
                data[2].append(saison2[i][2])

        ax.scatter(data[0], data[1], data[2], alpha=1,
                   c=color[kk], s=40, label="catégorie "+str(kk+1))

    ax.set_xlabel('réussite au tir (%)')
    ax.set_ylabel('duels gagnés (%)')
    ax.set_zlabel('temps de jeu effectif (%)')

    plt.legend(loc=2)

    plt.tight_layout()

    plt.show()
