3

私は今までいつもここで助けを見つけてきました。私は自分の問題の解決策を非常に長い間探していましたが、今では目が見えないかもしれません..これで私を助けてくれることを願っています:

方向フィールド (矢筒) またはストリームプロットのいずれかをプロットする 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!
4

1 に答える 1