Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在pdb模式下,在命令提示下键入imshow(img)时,不会显示matplotlib图形_Python_Debugging_Matplotlib_Pdb_Spyder - Fatal编程技术网

Python 在pdb模式下,在命令提示下键入imshow(img)时,不会显示matplotlib图形

Python 在pdb模式下,在命令提示下键入imshow(img)时,不会显示matplotlib图形,python,debugging,matplotlib,pdb,spyder,Python,Debugging,Matplotlib,Pdb,Spyder,是否有人在调试模式(PDB)下使用spyder时遇到此问题?它在交互模式下工作良好 一个建议是在imshow(img)之后使用pause(1)而不是show() 有没有更好的方法在调试模式下查看我的图形?如果有,那将是一个真正的Matlab杀手 来回答我自己的问题。显然,这是一个问题,暂停(1)是在PDB模式下查看绘图图形的唯一方法 另一种方法是通过剪切并粘贴到命令行,将整个程序作为脚本运行。这样可以使用show()代替pause(1)。这样做的好处是可以放大绘图。使用pause(1)时,这仅在

是否有人在调试模式(PDB)下使用spyder时遇到此问题?它在交互模式下工作良好

一个建议是在
imshow(img)
之后使用
pause(1)
而不是
show()


有没有更好的方法在调试模式下查看我的图形?如果有,那将是一个真正的Matlab杀手

来回答我自己的问题。显然,这是一个问题,
暂停(1)
是在PDB模式下查看绘图图形的唯一方法

另一种方法是通过剪切并粘贴到命令行,将整个程序作为脚本运行。这样可以使用
show()
代替
pause(1)
。这样做的好处是可以放大绘图。使用
pause(1)
时,这仅在暂停期间才可能

例如:

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

file_name = 'myimage.jpg'
img = cv2.imread(file_name)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,150,100,apertureSize = 3)

#display image
plt.figure(1)
plt.imshow(edges)
plt.title('edges of image')
plt.show()
编辑:

我刚刚在python中发现了一个不错的替代绘图工具,名为guiqwt

与matplotlib不同,它使用pdb

import numpy as np
from guiqwt.pyplot import *
figure("simple plot")
subplot(1, 2, 1)
plot(x, np.tanh(x+np.sin(12*x)), "g-", label="Tanh")
legend()
subplot(1, 2, 2)
plot(x, np.sinh(x), "r:", label="SinH")
show()
您可以将其作为中包含的软件包的一部分获取,也可以从中下载

Edit2:

我刚刚发现matplotlib发布的最新IDE支持得更好。您可以使用plt.imshow(img),甚至不必使用plt.show()在调试模式下显示图像