【问题标题】:Understanding plt.show() in Matplotlib了解 Matplotlib 中的 plt.show()
【发布时间】:2019-04-07 23:33:09
【问题描述】:
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 1 和 2。现在我希望只看到一张图像。 我尝试 plt.show(1) 只显示第一张图像,但它们都是。 我应该写什么才能得到一个?

【问题讨论】:

标签: numpy matplotlib pycharm


【解决方案1】:

plt.clf()会清图

import matplotlib.pyplot as plt


plt.plot(range(10), 'r')

plt.clf()


plt.plot(range(12), 'g--')
plt.show()

【讨论】:

    【解决方案2】:

    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')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-02
      • 1970-01-01
      • 2014-03-08
      • 2022-11-28
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      • 2016-02-09
      相关资源
      最近更新 更多