plt (matplotlib) 未在新 window 中显示

plt (matplotlib) not displaying in a new window

我正在尝试使用 matplotlibplt 对两个图像 aaREFLECTANCE 进行子图,问题是该图形显示在控制台中而不是新 window 中,我需要将图形显示在新的单独 window 中以便保存它并在代码之外使用它。

我认为问题实际上与我使用的 Linux (Ubuntu) 版本有关?还是我遗漏了某行代码?

感谢您的帮助。

import matplotlib.pyplot as plt
import numpy as np
import cv2

directory = "/home/stagiaire/Bureau/tech/IMG_170622_081910_0004_RED.TIF"

aa=cv2.imread(directory)

plt.figure()
plt.subplot(221), plt.imshow(aa),plt.title('Image originale')
plt.subplot(222), 
plt.imshow(np.array(REFLECTANCE).reshape(1280,960).T),plt.title('Reflectance')

转到

Tools -> Preferences -> IPython consol -> Completion Type 

设置为graphical

如果你使用matplotlib,你需要使用plt.show()来显示图像,除非你没有处于交互模式:

plt.figure()
plt.imshow(sample_image) 
plt.show()  # display it

注意:请注意,您不必为了保存图像而显示图像。

plt.savefig('image.png')

默认情况下,Canopy 运行在 pylab qt 模式下是其 IPython 内核;在这种模式下,windows 会弹出一个新的 window。因为他们没有为您执行此操作,所以您过去可能出于某种原因将设置更改为 pylab 内联模式。 (也许是因为你想运行一个TK程序,如here?)

请将其重置为 qt(编辑=>首选项=>Python=>backend=qt)。现在是否按预期运行?

顺便说一句,the current version of Canopy is 2.1.3