Понимание plt.show () в Matplotlib - PullRequest
0 голосов
/ 04 ноября 2018
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 1 и 2 соответственно. Теперь я хочу видеть только одно изображение. Я попробовал plt.show (1), увидев ТОЛЬКО первое изображение, но оба они есть. Что я должен написать, чтобы получить только один?

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

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')
0 голосов
/ 04 ноября 2018

plt.clf() очистит фигуру

import matplotlib.pyplot as plt


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

plt.clf()


plt.plot(range(12), 'g--')
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...