Configuration Guide
yaml2plot 2.0.0 uses a single configuration model — yaml2plot.PlotSpec — to describe everything you want to see in a plot. A PlotSpec is simply structured data (YAML, JSON, or a Python dictionary) that defines:
x – which signal provides the x-axis (usually
timeorfrequency)y – one or more groups of y-axis traces
optional figure-level options such as title
This page explains every option, shows practical examples, and demonstrates how to build PlotSpecs from files, strings, or dictionaries.
Creating a PlotSpec
import yaml2plot as y2p
# from a YAML file
spec = y2p.PlotSpec.from_file("config.yaml")
# from an inline YAML string
spec = y2p.PlotSpec.from_yaml("""
title: "Transient Analysis"
x:
signal: "time"
label: "Time (s)"
y:
- label: "Voltage (V)"
signals: {OUT: "v(out)"}
""")
# from a Python dict (raises ValidationError on mistakes)
dict_spec = {
"title": "Dict Example",
"x": {"signal": "time", "label": "Time (s)"},
"y": [{"label": "Current", "signals": {"M1": "i(m1)"}}],
}
spec = y2p.PlotSpec.model_validate(dict_spec)
Once you have a PlotSpec, pass it to yaml2plot.plot() together with the data dictionary returned by yaml2plot.load_spice_raw().
Schema Reference
For the complete field-by-field documentation of all configuration options, see the PlotSpec Schema Reference reference page, which is automatically generated from the Pydantic model definitions.
Example PlotSpec
Here’s a comprehensive example showing common configuration options:
title: "Amplifier Analysis"
x:
signal: "time"
label: "Time (s)"
y:
- label: "Input / Output Voltage (V)"
signals:
VIN: "v(in)"
VOUT: "v(out)"
- label: "Current (A)"
scale: "log"
signals:
IM1: "i(m1)"
Processed / Derived Signals
To plot derived signals just insert them into the same data dictionary – they behave exactly like native SPICE traces.
import numpy as np, yaml2plot as y2p
data = y2p.load_spice_raw("simulation.raw")
power = data["v(out)"] * data["i(out)"]
# Append the derived signal to the data dict
data["power"] = power
spec = y2p.PlotSpec.from_yaml("""
x:
signal: "time"
label: "Time (s)"
y:
- label: "Voltage & Power"
signals:
OUT: "v(out)"
Power: "power" # shorthand for data key
""")
fig = y2p.plot(data, spec)
Multiple Configurations
For complex analyses you can create multiple PlotSpecs and call yaml2plot.plot() multiple times:
voltage_spec = y2p.PlotSpec.from_file("voltage.yaml")
current_spec = y2p.PlotSpec.from_file("current.yaml")
data = y2p.load_spice_raw("simulation.raw")
fig_v = y2p.plot(data, voltage_spec)
fig_i = y2p.plot(data, current_spec)
Best Practices
Use descriptive labels and include units.
Group related signals on the same axis for easy comparison.
Choose log scales for signals spanning many orders of magnitude.
Keep YAML files next to your simulations so they can be version-controlled.
—
That’s all you need to describe plots with yaml2plot 2.0.0. Explore the Quick Start Guide for an end-to-end example, or dive into API Reference for full symbol documentation.