@@ -219,7 +219,19 @@ def change_handler(value, name=name):
219
219
raise ValueError (f"{ input_type } is not a supported input type" )
220
220
221
221
222
- def make_space (model , agent_portrayal ):
222
+ def prepare_matplotlib_space (drawer ):
223
+ def wrapped_drawer (model , agent_portrayal ):
224
+ space_fig = Figure ()
225
+ space_ax = space_fig .subplots ()
226
+ drawer (model , agent_portrayal , space_fig , space_ax )
227
+ space_ax .set_axis_off ()
228
+ solara .FigureMatplotlib (space_fig )
229
+
230
+ return wrapped_drawer
231
+
232
+
233
+ @prepare_matplotlib_space
234
+ def make_space (model , agent_portrayal , space_fig , space_ax ):
223
235
def portray (g ):
224
236
x = []
225
237
y = []
@@ -248,14 +260,10 @@ def portray(g):
248
260
out ["c" ] = c
249
261
return out
250
262
251
- space_fig = Figure ()
252
- space_ax = space_fig .subplots ()
253
263
if isinstance (model .grid , mesa .space .NetworkGrid ):
254
264
_draw_network_grid (model , space_ax , agent_portrayal )
255
265
else :
256
266
space_ax .scatter (** portray (model .grid ))
257
- space_ax .set_axis_off ()
258
- solara .FigureMatplotlib (space_fig )
259
267
260
268
261
269
def _draw_network_grid (model , space_ax , agent_portrayal ):
0 commit comments