Skip to main content

pandapower-viz

Interactive web visualizer for pandapower networks. Render power system diagrams and geographic maps — in the browser, in Jupyter notebooks, or embedded in React apps.

pandapower-viz screenshot

Features

  • Network Diagram — Interactive graph visualization with vis-network. Zoom, pan, drag, and click elements to inspect properties.
  • Geographic Map — Plot buses and lines on OpenStreetMap when coordinates are available.
  • Color Modes — Color by element type, voltage level, or loading percentage.
  • Compact Mode — Automatically simplifies large networks (>500 buses) for performance.
  • Dark & Light Themes — Full theme support via CSS custom properties.
  • Dual Distribution — Use from Python (pip install) or React (npm install).
  • Jupyter Support — Renders inline in notebook cells via anywidget.

Python Usage

pip install pandapower-viz
import pandapower as pp
import pandapower_viz as pv

net = pp.networks.case_ieee30()
pp.runpp(net)
pv.show(net)  # opens browser at localhost:8050

Jupyter Notebook

pv.show(net) auto-detects Jupyter and renders the diagram inline in the cell:

# In a Jupyter notebook cell:
import pandapower as pp
import pandapower_viz as pv

net = pp.networks.case_ieee30()
pp.runpp(net)
pv.show(net)  # renders inline — no browser tab opened

You can also use the widget directly for more control:

from pandapower_viz import NetworkWidget

w = NetworkWidget.from_net(net)
display(w)

# Update the network later:
pp.runpp(net)
w.update_network(net)

React Usage

npm install pandapower-viz
import { NetworkDiagram, parsePandaPowerJson } from 'pandapower-viz';
import 'pandapower-viz/dist/style.css';

function App({ data }) {
  const network = parsePandaPowerJson(data);
  return (
    <NetworkDiagram
      network={network}
      theme="dark"
      onElementSelect={(el) => console.log(el)}
    />
  );
}

Components

Component Description
NetworkDiagram Interactive network graph (vis-network). Supports color modes, compact mode, physics simulation.
NetworkMap Geographic map (Leaflet/OpenStreetMap). Shows buses as markers, lines as polylines.

Utilities

Function Description
parsePandaPowerJson(data) Parse pandapower JSON (from pp.to_json()) into a typed network object.
convertToVisNetwork(network) Convert network to vis-network nodes and edges (detailed mode).
convertToVisNetworkCompact(network) Convert to simplified nodes/edges for large networks.
getNetworkStatistics(network) Get element counts (buses, lines, trafos, etc.).
extractGeodata(network) Extract geographic coordinates from bus data.
getElementInfo(element, network) Get detailed properties for a selected element.
calculateTreeLayout(nodes, edges) Compute hierarchical tree positions for network nodes.

Theming

pandapower-viz uses CSS custom properties prefixed with --ppviz-. Override them to match your app's theme:

:root {
  --ppviz-bg-primary: var(--your-bg);
  --ppviz-text-primary: var(--your-text);
  --ppviz-brand-accent: var(--your-accent);
}

Or use the data-ppviz-theme attribute for built-in dark/light themes:

<div data-ppviz-theme="light">
  <!-- pandapower-viz components here -->
</div>

Supported Elements

Buses, lines, transformers (2-winding), loads, generators, static generators (solar PV, wind), battery storage, switches, external grids.

Requirements

  • Python: 3.9+ with pandapower
  • React: 18+
  • Peer dependencies: react, react-dom

Development

git clone https://github.com/matheusduartedm/pandapower-viz
cd pandapower-viz/frontend
npm install
npm run dev        # start dev server
npm test           # run tests
npm run build-lib  # build npm library

License

MIT

Release files for pandapower-viz 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pandapower-viz 1.2.0
File Size Uploaded
pandapower_viz-1.2.0.tar.gz 2.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for pandapower-viz 1.2.0
File Interpreter ABI Platform
pandapower_viz-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 3.4 MB

Release files / pandapower_viz-1.2.0.tar.gz

Download URL pandapower_viz-1.2.0.tar.gz
Size 2.2 MB
Tags Source
SHA-256 checksum
How to use checksums
9bd2e253c3f22b0872c94757db1e30ae8922cbff97ab8e6cf1107a888089b2c5
BLAKE2b-256 checksum
How to use checksums
7f615e3e911dd5c94144d1c020b55a7375efec822d95ad6056959d88b62a9cf5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / pandapower_viz-1.2.0-py3-none-any.whl

Download URL pandapower_viz-1.2.0-py3-none-any.whl
Size 1.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
14f149ebfe1ac64258b386c240267edaae0a17ee88459b04e0106add9d1188a5
BLAKE2b-256 checksum
How to use checksums
8df5668cbee488f04af52b5a3d02026fce2e608f10e009bc32931f1904a0214f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.1

2 release files

1.1.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page