Bonjour a tous,
Je suis novice en python alors pardonner mes erreurs et mon manque de savoir
J'ai créer un premier programme qui est une sorte de grille avec des cases colorées
J'ai créer un deuxième programme qui trace une droite avec une animation (avec une classe)
Et je voudrais créer un troisième dans lequel la droite traverserais la grille du deuxième programme.
J'ai essayé les fonctions import mais ça lance deux graphique différents et non superposés
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 """ 1er programme avec case colorées""" import numpy as np import matplotlib.pyplot as plt class Environment: def __init__(self): self.m = np.random.randint(2, size=(25,25)) cluster_1 = np.array([[10, 10, 10, 10 ], [1, 1, 1,1]]) self.c = cluster_1 for i in range(self.c.shape[1]): for j in range(self.c.shape[1]): if self.m[self.c[0,i]-1,self.c[1,j]-1]: self.m[self.c[0,i]-1,self.c[1,j]-1] = 1 print(self.m) plt.matshow(self.m, cmap='jet', interpolation='nearest') matrice = Environment() plt.show()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
41
42
43
44
45
46
47
48
49 """droite diagonale animation""" import numpy as np import matplotlib.pyplot as plt from matplotlib.lines import Line2D import matplotlib.animation as animation class SubplotAnimation(animation.TimedAnimation): def __init__(self): fig = plt.figure() ax1 = fig.add_subplot(1, 1, 1) self.x = np.linspace(0, 200, 256) self.y = np.linspace(0, 200, 256) self.line = Line2D([], [], color='black') self.robot = Line2D( [], [], color='red', marker='v', markeredgecolor='r') ax1.add_line(self.line) ax1.add_line(self.robot) ax1.set_xlim(0, 100) ax1.set_ylim(0, 100) plt.plot([10, ], [10,],'sk') animation.TimedAnimation.__init__(self, fig, interval=100, blit=True) def _draw_frame(self, framedata): i = framedata head = i - 1 self.line.set_data(self.x[:i], self.y[:i]) self.robot.set_data(self.x[head], self.y[head]) def new_frame_seq(self): return iter(range(self.x.size)) ani = SubplotAnimation() plt.show()
Partager