Electrical Schematic Drawing with Python

Fri 29 August 2014

Drawing quality electrical schematics is one of those tasks that always takes too long. Most software for the job focuses on fancy circuit simulations and doesn't care about appearance. Constantly facing the dilemma of how to draw simple schematic diagrams, I threw together a little Python package to help out. It does nothing but the circuit symbols. No simulations. No netlist generation. Just drawing a nice looking diagram that can be used in papers, exams, books, etc. Being Python-based, it also works great to annotate Jupyter notebooks.


Charging Capacitor

Charging Capacitor

See a gallery of circuits drawn with Schemdraw


  • Includes common 2- and 3- terminal electrical components: resistors, capacitors, inductors, transistors, op-amps, etc. Documentation has the full list.
  • Includes common logic gates
  • Easily add custom circuit elements
  • Helper functions for drawing transformers and "black-box" elements such as integrated circuits
  • Individually rotate elements with automatic label positioning
  • Python-based, works great in Jupyter notebooks
  • Save images in vector formats such as SVG or EPS, or in raster formats PNG, JPG, etc.


The Python package is called SchemDraw and can be installed from Pypi with:

pip install SchemDraw


Example usage:

import SchemDraw as schem
import SchemDraw.elements as e
d = schem.Drawing()
d.add(e.RES, label='100K$\Omega$')
d.add(e.CAP, d='down', botlabel='0.1$\mu$F')

It's free, open-source, released under the MIT License. The source is available here. Documentation and examples are included in the package, and are also online. It includes several examples and lots of images showing the included electrical elements.

If you find this useful, and use it in any sort of publication, I'd love to hear about it! Leave a comment below.