I did a tiny bit of work on this over the weekend too and
> decided to try to use a LineCollection instead of patches
> inspired by Chris Barker's code, but removing his polar
> coordinate stuff. Lines seemed a more promising way to go
> for the arrows, although the width should scale down when
> the arrows get small so that they're never wider than their
> length. Using a line collection may not permit this. I also
> haven't got it working yet. FWIW, Jordan's explanations of
> expected behaviour have been spot on so far. Also, I'd be
> happy to see the API fixed up a bit.
You can derive a custom line collection which has this behavior --
LineCollection supports an independent linewidth for each segment, so
as long as you keep an array of linewidths and an array of arrow
lengths, you can clip or set the linelengths at draw time or at
segment setting time. draw time is probably more appropriate, since
then you can account for figure window size under resizes, etc....