matplotlib/matplotlib — pull request #2500 by tonysyu (2013-10-06 20:13:41+00:00)
Title: WIP: Fix streamplot set

Currently, `streamplot` returns a not-so-useful `StreamplotSet` containing the line and arrow collections drawn on the figure. One major problem was that the arrow collection created was never added to the axes (each arrow patch was added separately). Unfortunately, making the arrows a true `PatchCollection` is a bit difficult: `FancyArrowPatch` doesn't seem to play nice with `PatchCollection`.

To fix these issues this PR:
* Uses `FancyArrow` instead of `FancyArrowPatch`
* Makes `StreamplotSet` a `CompositeCollection`.

The consequences are that:
* Tests break since the different arrow classes draw with different sizes and at different locations
* `arrowstyle` needs to be deprecated as an argument to `streamplot`
* `CompositeCollection` may be a bit too magical (it automatically delegates attribute access to sub-collections)

Alternatives:
* Fix `FancyArrowPatch` to work with `PatchCollection`. This probably requires some transform knowledge that I'm missing.
* Instead of `CompositeCollection`, just add some subset of collection methods/attrs that the set should support.

Note: Changes to `pyplot.py` were generated by `boilerplate.py`.