我有一個腳本,應該在for循環的每次迭代中更新25個圖像的網格。該代碼基本上是這樣(我留出多餘的東西,以保持它的簡單):高效地更新幾個pyplots
from matplotlib import pyplot as plt
plt.ion()
fig, ax = plt.subplots(5,5,figsize=(3,3))
for i in range(100):
updateImages()
for j in range(5):
for k in range(5):
ax[j,k].imshow(image[j,k])
plt.draw()
plt.pause(0.01)
的問題是,它運行得非常,非常緩慢[不,它不是updateImages()
是緩慢的。我相信有一個更有效的方法來做到這一點,但到目前爲止,我一直無法找到任何例子。建議將非常感謝!
問題_might_可能是因爲在總是調用'imshow'而不是_replacing/updating_ them時,您只是_adding_數據指向圖表,因此在處理很多循環之後,您必須處理大量數據。您可以將'imshow'的第一個輸出存儲在像'ax'這樣的列表中,然後只更新數據:'list_of_images [j,k] = imshow(...)',然後在循環list_of_images [j,k] .set_data(圖像[J,K])'。 – Michael
@邁克爾這似乎更像是一個答案,而不是評論。 – ImportanceOfBeingErnest