這篇知乎文章 使用Matplotlib畫動態圖實例 介紹的挺好的,精彩內容截圖如下:
在訓練神經網絡時,我們常常希望在圖中看到loss減小的動態過程,這時我們可用plt.ion()函數打開交互式模式,在交互式模式下可動態地展示圖像。
例一:動態畫圖
import matplotlib.pyplot as plt x = list(range(1, 21)) # epoch array loss = [2 / (i**2) for i in x] # loss values array plt.ion() for i in range(1, len(x)): ix = x[:i] iy = loss[:i] plt.cla() plt.title("loss") plt.plot(ix, iy) plt.xlabel("epoch") plt.ylabel("loss") plt.pause(0.5) plt.ioff() plt.show()
此程序來自這篇博客。
例二:動態地分別展示多張圖片
import matplotlib.pyplot as plt import cv2 img1 = cv2.imread('/Users/wangpeng/Desktop/all/CS/HDR/hdr_opencv/img_0.033.jpg') img2 = cv2.imread('/Users/wangpeng/Desktop/all/CS/HDR/hdr_opencv/img_2.5.jpg') img3 = cv2.imread('/Users/wangpeng/Desktop/all/CS/HDR/hdr_opencv/img_15.jpg') lst = [img1, img2, img3] f, a = plt.subplots(1, 1, figsize=(5, 5)) plt.ion() for i in range(3): a.clear() a.imshow(lst[i]); a.set_xticks(()); a.set_yticks(()) plt.pause(0.5) plt.ioff() plt.show()