import matplotlib.pyplot as plt; plt.rcdefaults() import numpy as np import matplotlib.pyplot as plt from pylab import * import matplotlib.animation as animation TailleGrilleX = 15 TailleGrilleY = 15 GrilleInitiale = 0 HistoriqueGrille = list() StratsResultats = list() ListeStrategies = list() def matRecup(i, param): """array*str-> array Récupère la matrice avec seulement le paramètre stratégie pour chaque joueur , à litération i voulue""" matR = np.random.randint(0,1,(TailleGrilleX,TailleGrilleY)) matrice = HistoriqueGrilles[i] for ligne in range (0,TailleGrilleX): #int ligne for colonne in range (0, TailleGrilleY): #int colonne matR[ligne][colonne]=matrice[ligne][colonne][param] return matR def animation_strat(): fig=plt.figure() fig.suptitle('Animation des stratégies') cmap = mpl.colors.ListedColormap(["black","green" ,"red" ,"blue" ,"yellow"]) bounds=[0,1,2,3,4,5] norm=mpl.colors.BoundaryNorm(bounds, cmap.N) img=plt.imshow(matRecup(0, 'strategie'), interpolation = "nearest", cmap = cmap , norm = norm) cb=plt.colorbar(img , cmap=cmap , norm=norm , boundaries = bounds , ticks=bounds) labels = np.arange(1, 6, 1) cb.set_ticklabels(labels) def update(next_iteration,*args): img.set_array(matRecup(next_iteration , 'strategie')) return [img] anim = animation.FuncAnimation(fig, update, frames=range(MaxIterations), interval=1000, repeat = False) plt.show() def affichage_strats_resultats_totaux(): """array->graph Retourne les diagrammes en baton qui mettent en évidence le nombre d'années de prison en fonction de la stratégie et le nombre d'utilisation de chaque stratégies """ #initialisation des paramètres #list gain gain=[] #list strat stratUtili=[] for i in range(5): gain.append(0) stratUtili.append(0) for i in range(0,len(ListeStrategies)): stratUtili[i]=StratsResultats[i][0] gain[i]=StratsResultats[i][1] #Diviser nb années de prison par le nb d'utilisatons de le stratégi (moyenne) Strat=('1','2', '3','4' ,'5') x_pos = np.arange(len(Strat)) plt.subplot(221) plt.bar(x_pos, stratUtili, align='center' , color='r') plt.xlabel("Stratégies") plt.ylabel("Nombre individus ayant adopté stratégie") plt.xticks(x_pos,Strat) plt.subplot(222) plt.bar(x_pos, gain, align='center', color='b' ) plt.xlabel("Stratégies") plt.ylabel("Nombre d'années de prison") plt.xticks(x_pos,Strat) plt.show()