ARE_Dynamic_2017/parties/Bar_Chart + Récup_mat.py

124 lines
2.6 KiB
Python

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 simulation():
"""->Grille"""
iterations = 0
while iterations <= MaxIterations :
partie_globale()
pass
fig=plt.figure()
fig.suptitle('Animation des stratégies')
cmap = mpl.colors.ListedColormap(["black","green","blue","red"])
bounds=[0,1,2,3]
norm=mpl.colors.BoundaryNorm(bounds, cmap.N)
img=plt.imshow(matRecup(0, 'stratégies'), interpolation = "nearest", cmap = cmap , norm = norm)
def update(next_iteration,*args):
img.set_array(matRceup(0 , 'stratégies')
return img,
anim = animation.FuncAnimation(fig, update, frames=range(Maxiterations), interval=1000, blit=True , repeat = False)
plt.show()
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 = HistoriqueGrille[i]
for ligne in range (0,TailleGrilleX): #int ligne
for colonne in range (0, TailleGrilleY): #int colonne
matStrat[ligne][colonne]=matrice[ligne][colonne][param]
return matR
def bar_chart():
"""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]['nb_utilisations']
gain[i]=StratsResultats[i]['total_ans_prisons']
Strat=('1','2', '3','4' ,'5')
x_pos = np.arange(len(Strat))
plt.subplot(221)
plt.bar(x_pos, gain, align='center', color='b' )
plt.xlabel("Stratégies")
plt.ylabel("Nombre d'années de prison")
plt.subplot(222)
plt.bar(x_pos, stratUtili, align='center' , color='r')
plt.xlabel("Stratégies")
plt.ylabel("NB individus ayant adopté stratégie")
plt.xticks(x_pos,Strat)
plt.show()