首页 > 解决方案 > 如何在不使用 Jupyter Notebook 的情况下使用 SchemDraw 绘制示意图?

问题描述

下面的代码示例运行没有错误,但屏幕上没有显示任何内容。

这是我正在尝试使用的代码示例...

import SchemDraw
import SchemDraw.elements as elm

d = SchemDraw.Drawing()
R1 = d.add(elm.Resistor(label='1K$\Omega$'))
d.labelI(R1, '1 mA', top=False)
d.add(elm.Capacitor(d='down', botlabel='0.1$\mu$F'))
d.add(elm.Line( d='Left'))
d.add(elm.Ground)
d.add(elm.SourceV( d='up', label='10V') )
d.save('schematic.svg')
d.draw()

我在 Windows 7 平台上,并且我的命令提示符中集成了 Python 3.7。如果我导航到我的schematic.py文件所在的目录并将其添加到控制台中:

Python schematic.py

它运行良好并以 0 错误退出,但屏幕上没有任何内容,甚至没有调用 Matplotlib...

在搜索了一些非常有限的文档、简短教程或示例之后,我意识到上面的示例以及其他示例都依赖于内联 Matplotlib 的 Jupyter Notebook...


我如何在不使用 Jupyter Notebook 和直接内联 Matplotlib 的情况下绘制它?

我想将它作为基本的 Python 脚本运行,我知道我可以像这样手动导入 Matplotlib 模块......

import Matplotlib.pyplot as plt

//... prev code
d.draw() // doesn't draw anything to the screen or to matplotlib's backend...
// plt.plot(...)? What goes here?
plt.show()

但是我不知道如何使用它来绘制SchemDraw的draw方法的结果......

标签: pythonmatplotlibjupyter-notebookdrawingcircuit-diagram

解决方案


丢失 Matplotlib 交互式窗口是 SchemDraw 0.7 中引入的回归错误。它在 0.7.1 中修复,今天推送到PyPi。在此版本中,d.draw()如果作为脚本运行,则打开 Matplotlib 窗口,如果在 Jupyter 内联模式下运行,则在单元格中显示输出。


推荐阅读