如果有流图:
c = streamplot(X, Y, U, V, color=(0,0,0,1))
现在,我想隐藏它:
c.lines.set_alpha(0)
c.arrows.set_alpha(0)
draw()
线条消失了,但箭头没有。为什么?如何更改箭头的 alpha?('我正在使用 qt4agg 后端)。
如果有流图:
c = streamplot(X, Y, U, V, color=(0,0,0,1))
现在,我想隐藏它:
c.lines.set_alpha(0)
c.arrows.set_alpha(0)
draw()
线条消失了,但箭头没有。为什么?如何更改箭头的 alpha?('我正在使用 qt4agg 后端)。
这……很奇怪。据我所知,对 c.arrows 所做的任何事情实际上都不会改变任何箭头:也c.arrows.set_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() 替换为特定轴。
这一点都不理想,我假设其中涉及某种错误。我将不得不更仔细地研究它。
编辑:
所以,这里有几件事。从本质上讲,c.arrows
PatchCollection 完全没用,据我所知:
streamplot
,在 streamplot.py 中,根本不将c.arrows
PatchCollection 添加到轴上。相反,它直接添加了 FancyArrowPatches。至少,文档应该明确这c.arrows
不是一个真正的集合,而是看起来是一个虚假的、无用的对象,意味着未来的兼容性。