1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| # -*- coding:Utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
import time
def definir_zone(i_1, i_2, j_1, j_2):
""" Calcule les indices équivalents à tab[i_1:i_2,j_1,j_2] """
ind_y = [ (i)//(j_2 - j_1) + i_1 for i in range( (i_2 - i_1) * (j_2 - j_1) ) ]
ind_x = range( j_1, j_2) * (i_2 - i_1)
return np.array(ind_y), np.array(ind_x)
if __name__ == '__main__':
n = 100 # Taille de l'image [n x n]
plt.ion() # utilise pyplot en interactif
# Déclaration de l'image
A = np.zeros( (n,n), dtype=np.int)
# Création des zones
zones = {}
for i, ind in enumerate( ( (10,40,10,50), (50,100,10,70), (10,100,80,100) ) ):
i1, i2, j1, j2 = ind
zones[i] = definir_zone( i1, i2, j1, j2)
nb_z = zones.__len__()
while True:
# Modification des valeurs quelque part dans le programme
valeurs = { i: int(np.random.uniform(high=100)) for i in np.arange(nb_z) }
# Mise à jour de l'image
for k, v in zones.items():
A[v] = valeurs[k]
# Affichage
plt.imshow(A)
plt.axis('off')
plt.colorbar()
plt.draw()
time.sleep(0.1)
plt.clf() |
Partager