visualdynamics.plot.sine_tracking¶
sine_tracking
¶
One tone read several ways, overlaid: the level against frequency through each tracking band and detector, over the specification.
The question this view answers is how much does the reading depend on how it was taken — so every reading is drawn over the same axes, and the specification stands back in gray behind them as the reference, the way a specification stands behind its response everywhere else here.
Each reading wears a marker as well as a color. Several readings of one channel are told apart by color alone nowhere else in the package, because nowhere else are several curves of one quantity on one channel meant to be compared line for line; and a reader who cannot separate two of the palette's hues cannot read this plot by hue. So each reading also carries its own marker shape, placed at a dozen points along it (every point would bury the curve) and shown beside its name in the legend. Shapes rather than dashes: dashes here already mean a synthesis drawn over a measurement.
The level axis is linear. The sine levels are drawn in decades elsewhere, which is right for a sweep spanning a resonance; here the readings sit within tens of percent of each other, and on a log axis the 30 % a harmonic adds to a peak reading is a sliver.
Functions:
| Name | Description |
|---|---|
build_sine_tracking |
Draw the readings of one channel, and return how many drew. |
Functions:¶
build_sine_tracking
¶
build_sine_tracking(layout: Any, levels: Sequence[Any], settings: Sequence[Any], *, channel: int = 0, specification: Any = None, unit_system: Any = None, theme: Any = None) -> int
Draw the readings of one channel, and return how many drew.
levels and settings are what core.sine_tracking.track_sine
takes and returns, in the same order; channel is the row of the
levels drawn. With specification, the tone's target at that
channel is drawn behind them in the specification's gray.