Python 如何在Matplotlib中更新streamplot的颜色?

Python 如何在Matplotlib中更新streamplot的颜色?,python,matplotlib,Python,Matplotlib,如果有流程图: c = streamplot(X, Y, U, V, color=(0,0,0,1)) 现在,我想把它隐藏起来: c.lines.set_alpha(0) c.arrows.set_alpha(0) draw() 线条清晰,但箭头不清晰。为什么?如何更改箭头的alpha?('Im使用qt4agg后端)。那是。。。奇怪的据我所知,对c.arrows所做的任何操作实际上都不会改变任何箭头:c.arrows.set\u visible(False)也不会做任何事情。Qt4Agg和i

如果有流程图:

c = streamplot(X, Y, U, V, color=(0,0,0,1))
现在,我想把它隐藏起来:

c.lines.set_alpha(0)
c.arrows.set_alpha(0)
draw()

线条清晰,但箭头不清晰。为什么?如何更改箭头的alpha?('Im使用qt4agg后端)。

那是。。。奇怪的据我所知,对c.arrows所做的任何操作实际上都不会改变任何箭头:
c.arrows.set\u visible(False)
也不会做任何事情。Qt4Agg和iPython内联后端都是这种情况

一种解决方案是直接在每个箭头上设置alpha/可见性。例如,您可以执行以下操作:

for x in gca().get_children():
    if type(x)==matplotlib.patches.FancyArrowPatch:
        x.set_alpha(0) # or x.set_visible(False)
draw()
您可能希望用特定轴替换gca()

这一点都不理想,我假设其中包含某种bug。我得更仔细地调查一下


编辑:

所以,这里有一些东西。从本质上讲,
c.arrows
PatchCollection是完全无用的,我只能说:

  • streamplot.py中的
    streamplot
    ,根本不向轴添加
    c.arrows
    PatchCollection。相反,它直接添加FancyArrowPatches
  • 即使有
  • 本来应该有一个关于这件事的文件,但显然从来没有这样做过。如果有机会的话,我可能会努力的
至少,文档应该明确指出,
c.arrows
不是一个真正的集合,而是一个虚假的、无用的对象,意味着未来的兼容性