Examples
Note
All code below targets yaml2plot 2.0.0. The modern workflow is:
data = y2p.load_spice_raw("my.raw")– obtain anxarray.Datasetwith signals and metadataspec = y2p.PlotSpec.from_yaml(""" ... """)– build a PlotSpec (YAML string or file)fig = y2p.plot(data, spec)– create the Plotly figure
This page contains practical examples for common use cases with yaml2plot.
Basic Waveform Plot
Plot input and output voltages from an amplifier simulation:
import yaml2plot as y2p
# Load simulation data
data = y2p.load_spice_raw("amplifier.raw")
# Simple voltage plot using YAML configuration
spec = y2p.PlotSpec.from_yaml("""
title: "Amplifier Response"
x:
signal: "time"
label: "Time (s)"
y:
- label: "Voltage (V)"
signals:
Input: "v(in)"
Output: "v(out)"
""")
fig = y2p.plot(data, spec)
Multi-Y-Axis Plot
Create multiple strips with shared x-axis and rangeslider:
data = y2p.load_spice_raw("complete_analysis.raw")
spec = y2p.PlotSpec.from_yaml("""
title: "Complete Circuit Analysis"
x:
signal: "time"
label: "Time (s)"
y:
- label: "Voltage (V)"
signals:
Input: "v(in)"
Output: "v(out)"
- label: "Current (A)"
signals:
M1: "i(m1)"
M2: "i(m2)"
- label: "Supply Voltage (V)"
signals:
VDD: "v(vdd)"
VSS: "v(vss)"
show_rangeslider: true
""")
fig = y2p.plot(data, spec)
AC Analysis with Complex Signal Processing
AC analysis results contain complex numbers for voltage and current signals, enabling proper magnitude and phase analysis for transfer functions and Bode plots:
import yaml2plot as y2p
import numpy as np
# Load AC analysis data (contains complex numbers)
data = y2p.load_spice_raw("ac_analysis.raw")
tf = data["v(out)"]/data["v(in)"]
data["tf_db"] = 20*np.log10(np.abs(tf))
data["tf_phase"] = np.angle(tf)/np.pi*180
spec = y2p.PlotSpec.from_yaml("""
title: "Transfer Function Bode Plot"
x:
signal: "frequency"
label: "Frequency (Hz)"
scale: "log"
y:
- label: "Magnitude (dB)"
signals:
H(jω): "tf_db"
- label: "Phase (degrees)"
signals:
φ(jω): "tf_phase"
height: 800
show_rangeslider: true
""")
fig = y2p.plot(data, spec)
Comparison Plots
Compare results from different simulation runs:
import xarray as xr
# Load multiple simulations
data1 = y2p.load_spice_raw("before_optimization.raw")
data2 = y2p.load_spice_raw("after_optimization.raw")
# Create comparison signals
data = xr.Dataset()
data["v_out_before"] = data1["v(out)"]
data["v_out_after"] = data2["v(out)"]
spec = y2p.PlotSpec.from_yaml("""
title: "Optimization Comparison"
x:
signal: "time"
label: "Time (s)"
y:
- label: "Voltage (V)"
signals:
Before: "v_out_before"
After: "v_out_after"
""")
fig = y2p.plot(data, spec)