4

たとえば、各リストが単一の曲線で表され、別のファイルに保存されている10個のリストをプロットしたいので、特別なことは何もありません。

問題は、各反復後にプロットされた曲線が削除されないため、各反復/プロット/ファイルで、新しい曲線が以前の反復の曲線に単純に追加されることです。

list1 = [...]
...
list10 = [...]
all_Lists = [list1, ..., list10]

for i in range(10):
    pyplot.plot(all_Lists[i])
    pyplot.savefig(...)

file1 には 1 つの曲線 / list1 がプロットされています。

file2 には 2 つの曲線 / list1+list2 がプロットされています。...

forループを使用して、プロットごとに単一の曲線を取得する方法を誰かが説明できれば幸いです。ありがとう!

4

1 に答える 1

2

混乱は、OO インターフェイスを使用していないことが原因だと思います。Pyplot は便利ですが、バックグラウンドで多くのことを処理するため、実際に何が起こっているのかわかりません。あなたの例では、図と軸をオンザフライで作成し、同じ軸にプロットし続けます。

pyplot.cla()プロットする前に軸をクリアすると問題が解決します。ループの最初の行として追加してみてください。

Figure と Axes オブジェクトを作成することをお勧めします。

all_Lists = [list(np.random.randn(30).cumsum()) for i in range(10)]

fig, ax = plt.subplots()

for n, curv in enumerate(all_Lists):
    ax.cla()
    ax.plot(curv)
    fig.savefig()
于 2013-09-05T15:20:33.303 に答える