Open nkleinbaer opened 6 days ago
Thanks for using OSMnx and suggesting this.
Can post a brief code snippet with minimal example a bit later today.
Sure, would you post the proposed code and I'll take a look?
Of course users can implement this themselves outside of osmnx, not sure if this passes the "not trivially easy" criteria from contributing guidelines.
It's really just a matter of the complexity of the proposed code. Sometimes it's just easier to share a dozen lines of code here in a comment or on StackOverflow for others to reuse than it is to incorporate it into the package, depending on the general applicability of the use case.
Here is a minimal example, taking the route of adding on to the existing plot_graph_route
func.
I found it convenient to define update_lines
as an inner function so that it could just modify the lines
variable defined in the outer scope, but alternatively this could be passed using the functools.partial
or by passing fargs
to matplotlib.animation.FuncAnimation
(although the docs say the later is discouraged).
To make it a bit snazzier I've also played around with:
Contributing guidelines
Documentation
Existing issues
What problem does your feature proposal solve?
Allow users to create animated plots of routes on graphs. For routes that cover all or most edges of a graph, a static plot doesn't show the route very clearly.
What is your proposed solution?
Use
matplotlib.animations.FuncAnimation
to animate route(s) step-by-step. Either:osmnx.plot.animate_graph_route
function for this featureanimate: bool
argument to the existingosmnx.plot.plot_graph_route
functionWhat alternatives have you considered?
Of course users can implement this themselves outside of
osmnx
, not sure if this passes the "not trivially easy" criteria from contributing guidelines.Additional context
I've been using
osmnx
for a toy project looking at the route inspection problem. Huge thanks for this awesome project, made it easy for me to get started playing with the actual problem quickly instead of writing code to fetch road data and convert it into graphs. For my use case I found that plotting the entire route at once isn't particularly insightful -- my routes always cover the entire graph -- so I implemented animation for myself. Figured it may be useful to others and worth contributing back.I've technically made a liar of myself by checking the "Nothing similar appears in an existing issue" box. I see two old, closed issues mentioning animation:
In #226 the animation piece is only mentioned tangentially, in #109 a user asks for help doing this but doesn't explicitly propose/request a feature.
Can post a brief code snippet with minimal example a bit later today.