import numpy as np
import os.path
from skimage.io import imread
from skimage import data_dir
img = imread(os.path.join(data_dir, 'checker_bilevel.png'))
import matplotlib.pyplot as plt
#plt.imshow(img, cmap='Blues')
#plt.show()
imgT = img.T
plt.figure(1)
plt.imshow(imgT,cmap='Greys')
#plt.show()
imgR = img.reshape(20,5)
plt.figure(2)
plt.imshow(imgR,cmap='Blues')
plt.show(1)
我读到plt.figure()将为图像创建或分配一个新ID(如果未明确给定ID)。所以在这里,我分别给出了两个数字,ID 1和2。现在,我只希望看到其中一张图像。 我尝试过plt.show(1),只有第一个图像会被显示,但两者都显示。 我该怎么写才能得到一个?
答案 0 :(得分:1)
plt.clf()
将清除数字
import matplotlib.pyplot as plt
plt.plot(range(10), 'r')
plt.clf()
plt.plot(range(12), 'g--')
plt.show()
答案 1 :(得分:0)
plt.show将显示所有创建的图形。您使用的参数强制以非阻塞方式显示图形。如果只想显示一个特定的图形,则可以编写包装函数。
import matplotlib.pyplot as plt
figures = [plt.subplots() for i in range(5)]
def show(figNum, figures):
if plt.fignum_exists(figNum):
fig = [f[0] for f in figures if f[0].number == figNum][0]
fig.show()
else:
print('figure not found')