I was wondering for the purpose of key argument mutational_scale in matplotlib; in the case of matplotlib.patches.FancyArrowPatch which is used to plot an arrow, mutational_scale is set to 1 by default. From the docs:
scalar, optional (default: 1)
Value with which attributes of arrowstyle (e.g., head_length) will be scaled.
When I plot an arrow between two scatter points of size 300, like this:
import matplotlib.pyplot as plt
import matplotlib as mpl
fig, ax = plt.subplots()
ax.scatter([0,1],[0,1], s=300)
arrow = mpl.patches.FancyArrowPatch((0,0), (1,1), arrowstyle='-|>')
plt.show()
The arrow head is non-visible.
However, when I use:
arrow = mpl.patches.FancyArrowPatch((0,0), (1,1), arrowstyle='-|>', mutational_aspect=20)
My guess is that the overall figure is scaled by a factor larger than 1, closer to 20, making the arrow head invisible with a mutational scale of 1 but visible when using 20. But it's just a guess.
If so, is there a way to know the mutation scaling of the overall figure to decide the proper scaling value for the arrow head?


