質問内容
この前質問したグラデーションのセルオートマトンは無事完成したと思われたのですが、プログラムを起動してその後閉じた後、意味の分からないエラーが出てきます。下は完成したコードです。
アニメーション作成ではtkinterではなくmatplotlibを使ったはずなのに、何故かプログラムを閉じた後にエラーメッセージが出てきます。エラーメッセージはコードの下に記載します。もしかして、プログラムが正しく動いていないのではないかと不安にもなっています。
なぜtkinterのエラーが出てくるのか、そしてどう解決すればいいのか教えてほしいです。お願いします。
コード
Python3
1import numpy as np 2import time 3import random 4import math 5import matplotlib.pyplot as plt 6 7def array2(N1,N2): 8 return [[0 for j in range(N2)]for k in range(N1)] 9def array3(N1,N2,N3): 10 return [array2(N2,N3)for k in range(N1)] 11 12def initdt(): 13 A=array3(1001,31,2) 14 A[0][15][1]=0.80 15 return A 16 17def execCell(A,i1): 18 i2 = 1 + i1 19 for i in range(1,30): 20 A[i2][i][1] = 2 * A[i1][i][1] * (1 - A[i1][i][1]) + A[i1][i-1][1] * (1 - A[i1][i-1][1]) + A[i1][i+1][1] * (1 - A[i1][i+1][1]) 21 22A = initdt() 23for i in range(1000): 24 execCell(A, i) 25 26ax = plt.subplot(1,1,1) 27img = ax.imshow(A[0], cmap="Greys") 28t = 0 29while True: 30 img.set_data(A[t]) 31 ax.set_title("t = {}".format(t)) 32 plt.pause(0.1) 33 t = (t+1)%1001
エラーコード
Traceback (most recent call last): File "react_kakusan3.py", line 32, in <module> plt.pause(0.1) File "C:\Python37\lib\site-packages\matplotlib\pyplot.py", line 295, in pause canvas.start_event_loop(interval) File "C:\Python37\lib\site-packages\matplotlib\backend_bases.py", line 2251, in start_event_loop self.flush_events() File "C:\Python37\lib\site-packages\matplotlib\backends\_backend_tk.py", line 491, in flush_events self._master.update() File "C:\Python37\lib\tkinter\__init__.py", line 1177, in update self.tk.call('update') _tkinter.TclError: can't invoke "update" command: application has been destroyed
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/10 02:40