20
20
# :class:`~matplotlib.animation.FuncAnimation` uses a user-provided function by
21
21
# repeatedly calling the function with at a regular *interval*. This allows
22
22
# dynamic generation of data by using generators.
23
- import itertools
24
-
25
-
26
- def data_gen ():
27
- for cnt in itertools .count ():
28
- t = cnt / 10
29
- yield t , np .sin (2 * np .pi * t )
30
23
31
24
32
25
def init ():
@@ -43,21 +36,20 @@ def init():
43
36
xdata , ydata = [], []
44
37
45
38
46
- def update (data ):
47
- t , y = data
48
- xdata .append (t )
49
- ydata .append (y )
39
+ def update (frame ):
40
+ xdata .append (frame )
41
+ ydata .append (np .sin (2 * np .pi * frame / 30 ))
50
42
xmin , xmax = ax .get_xlim ()
51
43
52
- if t >= xmax :
44
+ if frame >= xmax :
53
45
ax .set_xlim (xmin , 2 * xmax )
54
46
ax .figure .canvas .draw ()
55
47
line .set_data (xdata , ydata )
56
48
57
49
return line ,
58
50
59
51
ani = animation .FuncAnimation (
60
- fig = fig , func = update , frames = data_gen , init_func = init , interval = 20
52
+ fig = fig , func = update , frames = 240 , init_func = init , interval = 30
61
53
)
62
54
plt .show ()
63
55
@@ -73,25 +65,18 @@ def update(data):
73
65
rng .uniform (low = 0 , high = 1 , size = 100 ),
74
66
c = 'b'
75
67
)
68
+ ax .grid ()
76
69
77
70
78
- def data_gen ():
79
- for cnt in itertools .count ():
80
- x , y = (
81
- rng .uniform (low = 0 , high = 1 , size = 100 ),
82
- rng .uniform (low = 0 , high = 1 , size = 100 )
83
- )
84
- yield cnt , x , y
85
-
86
-
87
- def update (inputs ):
88
- frame , x , y = inputs
71
+ def update (frame ):
72
+ x = rng .uniform (low = 0 , high = 1 , size = 100 )
73
+ y = rng .uniform (low = 0 , high = 1 , size = 100 )
89
74
data = np .stack ([x , y ]).T
90
75
scat .set_offsets (data )
91
76
return scat ,
92
77
93
78
ani = animation .FuncAnimation (
94
- fig = fig , func = update , frames = data_gen , interval = 200
79
+ fig = fig , func = update , frames = 240 , interval = 300
95
80
)
96
81
plt .show ()
97
82
@@ -103,22 +88,16 @@ def update(inputs):
103
88
fig , ax = plt .subplots ()
104
89
rng = np .random .default_rng ()
105
90
106
- aximg = ax .imshow (rng .uniform (low = 0 , high = 1 , size = (100 , 100 )))
107
-
91
+ aximg = ax .imshow (rng .uniform (low = 0 , high = 1 , size = (10 , 10 )), cmap = "Blues" )
108
92
109
- def data_gen ():
110
- for cnt in itertools .count ():
111
- x = rng .uniform (low = 0 , high = 1 , size = (100 , 100 ))
112
- yield cnt , x
113
93
114
-
115
- def update (inputs ):
116
- frame , x = inputs
117
- aximg .set_data (x )
94
+ def update (frame ):
95
+ data = rng .uniform (low = 0 , high = 1 , size = (10 , 10 ))
96
+ aximg .set_data (data )
118
97
return aximg ,
119
98
120
99
ani = animation .FuncAnimation (
121
- fig = fig , func = update , frames = data_gen , interval = 200
100
+ fig = fig , func = update , frames = 240 , interval = 200
122
101
)
123
102
plt .show ()
124
103
@@ -131,13 +110,14 @@ def update(inputs):
131
110
132
111
133
112
fig , ax = plt .subplots ()
113
+ ax .grid ()
134
114
rng = np .random .default_rng ()
135
115
136
116
x_frames = rng .uniform (low = 0 , high = 1 , size = (100 , 120 ))
137
117
y_frames = rng .uniform (low = 0 , high = 1 , size = (100 , 120 ))
138
118
artists = [
139
119
[
140
- ax .scatter (x_frames [:, i ], y_frames [:, i ])
120
+ ax .scatter (x_frames [:, i ], y_frames [:, i ], c = "b" )
141
121
]
142
122
for i in range (x_frames .shape [- 1 ])
143
123
]
@@ -150,6 +130,7 @@ def update(inputs):
150
130
# -------------------------------------------
151
131
152
132
fig , ax = plt .subplots ()
133
+ ax .grid ()
153
134
rng = np .random .default_rng ()
154
135
155
136
scat = ax .scatter (
@@ -159,23 +140,15 @@ def update(inputs):
159
140
)
160
141
161
142
162
- def data_gen ():
163
- for cnt in itertools .count ():
164
- x , y = (
165
- rng .uniform (low = 0 , high = 1 , size = 100 ),
166
- rng .uniform (low = 0 , high = 1 , size = 100 )
167
- )
168
- yield cnt , x , y
169
-
170
-
171
- def update (inputs ):
172
- frame , x , y = inputs
143
+ def update (frame ):
144
+ x = rng .uniform (low = 0 , high = 1 , size = 100 )
145
+ y = rng .uniform (low = 0 , high = 1 , size = 100 )
173
146
data = np .stack ([x , y ]).T
174
147
scat .set_offsets (data )
175
148
return scat ,
176
149
177
150
ani = animation .FuncAnimation (
178
- fig = fig , func = update , frames = data_gen , interval = 200
151
+ fig = fig , func = update , frames = 240 , interval = 200
179
152
)
180
153
# ani.save(filename="/tmp/pillow_example.gif", writer="pillow")
181
154
# ani.save(filename="/tmp/pillow_example.apng", writer="pillow")
0 commit comments