Repository navigation
Description
In #11219 and #11223 @dstansby headed out to provide an arrow tutorial. Since the scope of this was rather limited, it ended up as an example examples/shapes_and_collections/arrow_guide.py - which is great.
However as mentionned in this PR #11223 there are a lot of other things to consider about arrows. In the end it would be good to have something like a complete "Arrow tutorial". I'm collecting the comments in this thread for them not to get lost, once someone has more time to write this up.
There currently are already the annotation_demo example and the annotations tutorial. So I wonder in how far they are overlapping or not. Independent of that, there should be links in between them.
In addition, the following things should be considered when writing :
- what is the relation between
ax.arrow,ax.annotate,ax.quiver,mpatches.FancyArrowPatch? - Any user looking at the
patchesdoc would directly ask: "What is the difference betweenArrow,FancyArrow,FancyArrowPatchandYAArrow?" A tutorial might want to answer this. - The problem when drawing arrows is mostly to understand all the different parameters. Common questions could be
- How to make the head larger?
- What are the units of
head_length,head_width,tail_width,mutation_scale, etc.? - Why is my arrow shorter than the distance between the two points I specified?
- Why can't I use an
FancyArrowPatchin a collection? What's the alternative? (should be checked when deprecating other arrows) - How do I draw an arrow with a dotted tail?
- When should I use a
ConnectionPatchinstead of aFancyArrowPatch?
- Is the arrow_demo useful? Can it be replaced by something simpler? Definitely explain
plt.arrow'slength_includes_headand possiblyhead_starts_at_zero-> plt.arrow start and end locations are wrong #12768 - Apperently it's not possible to get an arrow with a bolder connection path in the middle and two arrow heads on both sides? (This SO question) Need to check.
Activity
Adrien-Luxey commentedon May 4, 2021
I'm currently struggling with
FancyArrowPatch'spathparameter, which essentially disables a lot of heavy-lifting done by this class when called withposA&posB. My concrete problem is thatshrinkA&shrinkBparameters are not interpreted usingpath; however I can't reproduce their behavior using NetworkX (the arrow head ends up under the vertex the arrow is pointing to).jklymak commentedon May 4, 2021
Please discuss on discourse.Matplotlib.org. Or if you have a bug, open an issue with a self-contained example.
2 remaining items
github-actions commentedon Sep 9, 2024
This issue has been marked "inactive" because it has been 365 days since the last comment. If this issue is still present in recent Matplotlib releases, or the feature request is still wanted, please leave a comment and this label will be removed. If there are no updates in another 30 days, this issue will be automatically closed, but you are free to re-open or create a new issue if needed. We value issue reports, and this procedure is meant to help us resurface and prioritize issues that have not been addressed yet, not make them disappear. Thanks for your help!