<p dir="auto"><code class="notranslate">matplotlib.collections.PatchCollection.set_visible</code> doesn't seem to work.<br>
I was unable to set the arrows of a <code class="notranslate">pyplot.streamplot</code> invisible.</p>
<p dir="auto">As discussed in <a href="http://stackoverflow.com/questions/18409444/how-to-update-color-of-streamplot-in-matplotlib/18409978#18409978" rel="nofollow">this SO question</a> and <a href="http://matplotlib.1069221.n5.nabble.com/Problem-with-PatchCollection-and-FancyArrowPatch-td40372.html" rel="nofollow">this mailing list thread</a>, PatchCollection cannot handle FancyArrowPatch patches, as the paths for FancyArrowPatch can't be evaluated during PatchCollection creation. It appears that an issue was never created for this... please let me know if I'm being stupid and not noticing one.</p>
<p dir="auto">As such, the StreamplotSet.arrows PatchCollection appears to be entirely useless. In fact, streamplot() doesn't even add the collection to the axis, instead adding the individual patches, and then creating an apparently unused PatchCollection to return. This means that things that should work, like, for a StreamplotSet <code class="notranslate">s</code>, doing <code class="notranslate">s.arrows.set_visible(False)</code>, will not work, nor, to my knowledge, will doing anything with StreamplotSet.arrows have the desired result.</p>
<p dir="auto">As discussed in the mailing list thread, one potential solution to this would be to create a FancyArrowPatchCollection class especially for FancyArrowPatch, and then use this for streamplot; someone in the thread also gives a rudimentary class. If I have time, I might try to implement this, but does anyone have any better ideas?</p>