При отображении результатов в Game of Life анимация не работает - PullRequest
0 голосов
/ 30 марта 2020

Меня попросили автоматизировать ячейку, аналогично «Игре жизни», одной из задач было сделать так, чтобы она отображала визуализацию каждого кадра, а затем также анимацию всех кадров. Кроме того, он также должен генерировать график количества клеток в каждом состоянии во время моделирования. И вот где это идет не так. Это мой код:

    fig = plt.figure()
    board = np.arange(10000).reshape((100, 100))
    ims = []
    for i in range(10):
        board[i * 10, i * 10] = 0
        ims.append([plt.imshow(board)])
        # plt.show() #  If that line isn't a comment then it generates error
     h = [0, 0, 0]
     h[0] = np.arange(10)
     h[1] = np.arange(10, 20)
     h[2] = np.arange(20, 30)

     fig.suptitle("Simulation")  # Adding title
     cbar = fig.colorbar(ims[0][0])  # Adding a colorbar
     ani = animation.ArtistAnimation(fig, ims, interval=50, blit=True,   # Making animation
                            repeat_delay=1000)
     plt.show()  # Showing it

     # When closing animation window it generates 'after script' message

     plt.plot(h[0], color='red', label="zeros")
     plt.plot(h[1], color='magenta', label='ones')
     plt.plot(h[2], color='blue', label='twos')
     plt.legend()
     plt.show()

Таким образом, при его запуске генерируется это сообщение в терминале:

    invalid command name "140161660065904_on_timer"
        while executing
   "140161660065904_on_timer"
       ("after" script)

Однако все работает нормально. К сожалению, когда я раскомментирую эту строку:

    # plt.show() #  If that line isn't a comment then it generates error

Это показывает сообщение об ошибке, подобное этому:

    Exception in Tkinter callback
    Traceback (most recent call last):
      File "/usr/lib/python3.7/tkinter/__init__.py", line 1705, in __call__
        return self.func(*args)
      File "/usr/lib/python3.7/tkinter/__init__.py", line 749, in callit
        func(*args)
      File "/usr/lib/python3/dist-packages/matplotlib/backends/_backend_tk.py", line 346, in
    idle_draw               
        self.draw()
      File "/usr/lib/python3/dist-packages/matplotlib/backends/backend_tkagg.py", line 10,  in draw
_backend_tk.blit(self._tkphoto, self.renderer._renderer, (0, 1, 2, 3))
    File "/usr/lib/python3/dist-packages/matplotlib/backends/_backend_tk.py", line 88, in blit
photoimage.blank()
      File "/usr/lib/python3.7/tkinter/__init__.py", line 3548, in blank
self.tk.call(self.name, 'blank')
    _tkinter.TclError: invalid command name "pyimage100"
     Segmentation fault (core dumped)

, но повторяется для каждого кадра моей анимации. Кто-нибудь знает, о чем это может быть?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...