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.
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)
| File | Size | Uploaded | |
|---|---|---|---|
| pandapower_viz-1.2.0.tar.gz | 2.2 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|