无法获得以下代码来完成所有三件事:
- 在调试断点处停止
- 渲染图形
- 将控制权返回到控制台并呈现图形(在调试器模式下)
import matplotlib.pyplot as plt
from ipdb import set_trace
fig, ax = plt.subplots()
ax.plot(range(10))
plt.show()
set_trace()
同时执行所有这三件事的用例是在需要 matplotlib 可视化信息的模块内部进行调试。
从控制台以 ipython --pylab
运行 IPython仅完成上述(1)和(3),如下所示。使用 plt.ion()
在代码中做同样的事情。调试器可用,但可视化效果不会呈现。
从控制台运行 IPython 就像 ipython
,或运行 python <script.py>
,只完成上面的(1)和(2),如下图。可视化已呈现,但调试器不可用。
现在我正在使用 python 3.7.7
, matplotlib 3.1.3
与 Qt5Agg
后端,ipython 7.13.0
, 和 ipdb 0.12.3
.
最佳答案
如果使用 ion()
启用交互模式,你可以在运行时实现它 python <script.py>
.它将在 plot
之后立即显示绘图(通过调用绘图)并将控制权交还给位于 set_trace
的控制台.
import matplotlib.pyplot as plt
from ipdb import set_trace
# Enable interactive mode
plt.ion()
fig, ax = plt.subplots()
# Shown immediately
ax.plot(range(10))
set_trace()
关于python - 从调试器渲染 matplotlib 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61111129/