Conversation
ad3cad3 to
ddf1858
Compare
|
Could you add a screenshot how it looks? |
|
Thanks, better than nothing, but some sense of direction and following might be useful. I remember doing this for an exam, let me check if I still have code for this. |
|
Found it, but it was a custom matplotlib function. It would be nice to have an arrow-like shape to know the direction, and either random colors or to let them take the colors of a group/leader. # set the colormap we will use for plotting
bwr = plt.get_cmap("gist_rainbow")
def draw_boids(model):
x_vals = []
y_vals = []
u_vals = []
v_vals = []
colors = [] # List to hold the color for each agent
# Generate unique colors with saturation and transparency
# Use a colormap with high saturation, such as "hsv"
cmap = plt.get_cmap("hsv")
n_agents = len(model.schedule.agents)
color_indices = np.linspace(0, 1, n_agents)
for i, boid in enumerate(model.schedule.agents):
x, y = boid.pos
u, v = boid.direction_vector
x_vals.append(x)
y_vals.append(y)
u_vals.append(u)
v_vals.append(v)
# Assign a color with transparency; alpha value less than 1 introduces transparency
colors.append(cmap(color_indices[i])[:3] + (0.6,)) # Change 0.6 to the desired transparency
fig = plt.figure(figsize=(7, 7))
ax = fig.add_subplot(111)
# Use quiver with colors
q = ax.quiver(x_vals, y_vals, u_vals, v_vals, color=colors, angles='xy', pivot='mid',
headaxislength=8, headlength=10, headwidth=7, scale=35)
# The call to `embed_identity` is not changed.
embed_identity(ax, student_name, student_number)
draw_boids(model) |
|
It definitely is more informative. However, this PR is limited in its scope to get a feature parity of the JupyterViz with the Tornado viz. I can add the directions in a separate PR. |
|
You should raise an issue for it in projectmesa/mesa so that I don't forget to add the arrow and hue to the JupyterViz continuous space. |
|
Done: Go ahead and merge this one if you like. |


No description provided.