第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 Python 中對(duì)數(shù)組進(jìn)行著色和動(dòng)畫(huà)

在 Python 中對(duì)數(shù)組進(jìn)行著色和動(dòng)畫(huà)

我正在嘗試用 Python 構(gòu)建康威生命游戲的基本版本。我制作了一個(gè) 0 數(shù)組作為空白背景,用 1 替換要著色的點(diǎn)。但是,我無(wú)法為 0 和 1 指定顏色并同時(shí)為繪圖設(shè)置動(dòng)畫(huà)。這是完整的代碼:import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimationimport numpy as np grid = np.zeros((11,11), dtype=np.int16)def neighbors(x,y):    n_cells = [grid[x-1, y+1], grid[x, y+1], grid[x+1, y+1],                 grid[x-1, y], grid[x+1, y],                 grid[x-1, y-1], grid[x, y-1], grid[x+1, y-1]]    return sum(n_cells)grid[3:6,5]=1newgrid = grid.copy()def updatefig(i):    for x in range(10):        for y in range(10):            if grid[x,y]==0:                if neighbors(x,y)==3:                    newgrid[x,y]=1            else:                if neighbors(x,y)<2 or neighbors(x,y)>3:                    newgrid[x,y]=0    return newgridfig, ax = plt.subplots()ax = plt.gca()ax.set_xticklabels([])  ax.set_yticklabels([])ax.set_xticks([])ax.set_yticks([])    plt.imshow(grid, cmap='binary') ani = FuncAnimation(fig, updatefig, interval=100)plt.show()如果我在 plt.imshow() 中使用 cmap,我必須給出一個(gè)參數(shù),這會(huì)導(dǎo)致靜態(tài)繪圖并且沒(méi)有動(dòng)畫(huà)。如果我不指定顏色而只運(yùn)行動(dòng)畫(huà),則會(huì)出現(xiàn)白屏。我已經(jīng)尋找解決方案并嘗試過(guò),但沒(méi)有任何運(yùn)氣。如果我可以在不使用 imshow 的情況下將顏色分配給 0 和 1,我認(rèn)為它會(huì)成功。有任何想法嗎?編輯:我意識(shí)到我的循環(huán)有缺陷,它只提供 1 個(gè)更新的數(shù)組。我正在嘗試解決這個(gè)問(wèn)題,但無(wú)論如何仍然需要?jiǎng)赢?huà)。
查看完整描述

1 回答

?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

我發(fā)現(xiàn),這不是plt.imshow()和 動(dòng)畫(huà)同時(shí)出現(xiàn)的問(wèn)題,而是我的循環(huán)本身的問(wèn)題。一旦修好,它就起作用了。這是代碼:


import matplotlib.pyplot as plt 

from matplotlib.animation import FuncAnimation

import numpy as np 


grid = np.zeros((11,11), dtype=np.int16) 


def neighbors(x,y):

    #cell = grid[x,y]

    n_cells = [grid[x-1, y+1], grid[x, y+1], grid[x+1, y+1], 

                grid[x-1, y], grid[x+1, y], 

                grid[x-1, y-1], grid[x, y-1], grid[x+1, y-1]]

    return sum(n_cells)


grid[3:6,5]=1


newgrid = grid.copy()

def updatefig(i):

    for x in range(10):

        for y in range(10):

            if grid[x,y]==0:

                if neighbors(x,y)==3:

                    newgrid[x,y]=1

            else:

                if neighbors(x,y)<2 or neighbors(x,y)>3:

                    newgrid[x,y]=0


    def update_grid():

        global grid

        grid = newgrid.copy()


    update_grid()


    plt.imshow(newgrid, cmap='binary')

    


ax = plt.gca()

ax.set_xticklabels([])  

ax.set_yticklabels([])

ax.set_xticks([])

ax.set_yticks([])


#plt.imshow(grid, cmap='binary') 


ani = FuncAnimation(fig, updatefig, interval=100)

plt.show() 

我已經(jīng)imshow在循環(huán)內(nèi)部使用了,但即使我取消注釋動(dòng)畫(huà)函數(shù)上面的那個(gè),它仍然可以工作。


查看完整回答
反對(duì) 回復(fù) 2023-08-08
  • 1 回答
  • 0 關(guān)注
  • 153 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)