到目前为止我总是在这里找到帮助。我长期以来一直在寻找问题的解决方案,现在我可能已经失明了..我希望你能帮助我解决这个问题:
我已经构建了一个 python 程序,可以绘制方向场(颤动)或流图。由于图表中可能还有其他数据(例如轨迹),我不能只是清除所有内容并重新绘制。相反,我想删除单个元素。这对于除流图之外的所有内容都非常有效。
因此,流图由线条和箭头组成。存储在变量中sl
我可以简单地打电话sl.lines.remove()
删除行。但这对箭头不起作用。
我该如何删除这些?
编辑:
所以这里有一些代码:
import numpy as np
import matplotlib.pyplot as pp
streamplot = None
def mySystem(z):
x, y = z
return y, -x
def stream():
xmin = -10
xmax = 10
ymin = -10
ymax = 10
N = 40
M = int(N)
a = np.linspace(xmin,xmax,N)
b = np.linspace(ymin,ymax,N)
X1, Y1 = np.meshgrid(a,b)
DX1, DY1 = mySystem([X1,Y1])
global streamplot
streamplot = pp.streamplot(X1, Y1, DX1, DY1, density=2, color='#b5b5b5')
def removeStream():
global streamplot
streamplot.lines.remove()
#doesn't work: streamplot.arrows.remove()
stream()
removeStream()
pl.show() # arrows still here!