1. ホーム
  2. python

[解決済み] matplotlib.pyplotは前のプロットを忘れない - どうすればフラッシュ/リフレッシュできますか?

2023-01-09 06:51:20

質問

どのように matplotlib.pyplot を以前のプロットを忘れるようにするにはどうしたらよいでしょうか。

複数の時刻をプロットするために matplotlib.pyplot

コードは以下のような感じです。

def plottest():
    import numpy as np
    import matplotlib.pyplot as plt


    a=np.random.rand(10,)
    b=np.random.rand(10,)
    c=np.random.rand(10,)


    plt.plot(a,label='a')
    plt.plot(b,label='b')
    plt.plot(c,label='c')
    plt.legend(loc='upper left')
    plt.ylabel('mag')
    plt.xlabel('element)')
    plt.show()

    e=np.random.rand(10,)
    f=np.random.rand(10,)
    g=np.random.rand(10,)


    plt.plot(e,label='e')
    plt.plot(f,label='f')
    plt.plot(g,label='g')
    plt.legend(loc='upper left')
    plt.ylabel('mag')
    plt.xlabel('element)')
    plt.show()

残念ながら、何をやっても同じプロット(実はしばらく前に実行して完了した他のコードから)が表示され続けます。

同じようなコードは、以前は私のために働いていました。

私はこれらの質問を見ました。

どのように"クリーンスレート"するのですか?

Matplotlibのpyplot show()が一度閉じると動作しない

(python) matplotlib pyplot show() ... blocking or not?

を使ってみて plt.show() , plt.clf()plt.close を使っても無駄です。

何か思い当たることはありませんか?

どのように解決するのですか?

私はむしろ plt.clf() の後に plt.show() から は、現在の数値をクリアするだけです。 ウィンドウサイズを維持したまま、より良いパフォーマンスとより良いメモリ使用量を提供します。

同様に、あなたは plt.cla() をクリアするだけで、現在の .

特定の をクリアするには、例えば次のようにします。

fig, axes = plt.subplots(nrows=2, ncols=2)

axes[0, 1].clear()