如果有一个streamplot:
c = streamplot(X, Y, U, V, color=(0,0,0,1))
现在,我想隐藏它:
c.lines.set_alpha(0)
c.arrows.set_alpha(0)
draw()
线条消失,但不是箭头。为什么?如何更改箭头的alpha值? ('我正在使用qt4agg后端)。
答案 0 :(得分:5)
那......很奇怪。据我所知,对c.arrows所做的任何实际上并没有改变任何箭头:c.arrows.set_visible(False)
也什么也没做。 Qt4Agg和iPython Inline后端都是这种情况。
一种解决方案是直接在每个箭头上设置alpha / visibility。例如,您可以执行以下操作:
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
不是真正的集合,而是看似虚假,无用的对象意味着未来的兼容性。