visualdynamics.plot.matrix_checks¶
matrix_checks
¶
The two matrix checks of a multi-input test, drawn against frequency.
A Conditioning (core.matrix_checks) holds the singular values of an
FRF or a CSD at every line, and a Realizability the eigenvalues of a
cross-spectral matrix's coherence matrix with its repair. Each is drawn
as a figure of its own, and every curve is told apart by line style and
named in words, never by hue alone:
build_conditioning: above, on log axes, the singular values, the largest solid and each smaller one in a style of its own down the list, with the rank threshold (the largest over the limit) dotted; below, the condition number with the limit dashed and the lines over it hatched;build_realizability: above, the eigenvalues of the coherence matrix on a linear axis, so a negative one stands below the zero line drawn dashed, the smallest solid, the largest dashed and the rest dotted, the lines that are not realizable hatched; and, when the repair moved anything, the coherence and the phase of the pair it moved most, before solid and after dashed.
The hatching is a diagonal line pattern, which reads without color.
Functions:
| Name | Description |
|---|---|
singular_name |
What the |
hatch_bands |
Hatch the runs of flagged lines on |
build_conditioning |
Draw a conditioning reading into a graphics layout and return its |
build_realizability |
Draw a realizability reading into a graphics layout and return its |
Functions:¶
singular_name
¶
hatch_bands
¶
Hatch the runs of flagged lines on plot, each from halfway to
the line before to halfway to the line after, and return the items.
On a log frequency axis the edges are placed in decades.
Every run is one filled outline in a single item, reaching far past any range the plot shows: an item per run cost a couple of milliseconds each, and a reading flagged in a few hundred places held the window for a fifth of a second.
Source code in src/visualdynamics/plot/matrix_checks.py
build_conditioning
¶
build_conditioning(layout: Any, reading: Any, *, band: tuple[float, float] | None = None, unit_system: Any = None, theme: Any = None) -> tuple[Any, Any]
Draw a conditioning reading into a graphics layout and return its two plots, (singular values, condition number).
Above, on log axes, the singular values in the matrix's units, the
largest solid and the smaller ones dashed, dash-dotted and dotted in
turn, each named, with the rank threshold (the largest over the
limit) dotted thin; below, the condition number on a log axis with
the limit dashed and the lines over it hatched, the two plots
sharing the frequency axis. band is the (low, high) frequencies
shown, in Hz; the whole reading when omitted. The verdict and the
notes go in the title.
Source code in src/visualdynamics/plot/matrix_checks.py
build_realizability
¶
build_realizability(layout: Any, reading: Any, *, band: tuple[float, float] | None = None, pair: tuple[int, int] | None = None, theme: Any = None) -> tuple[Any, ...]
Draw a realizability reading into a graphics layout and return its plots: (eigenvalues,), or (eigenvalues, coherence, phase) when the repair moved anything.
Above, the eigenvalues of the coherence matrix on a linear axis
against log frequency, the smallest solid, the largest dashed and
any between dotted, with the zero line dashed thin and the lines
that are not realizable hatched: a negative eigenvalue is a
combination of the channels the specification gives negative power.
Below it, for the pair the repair moved most, the coherence and the
phase before (solid) and after (dashed); pair, (i, j) by channel
index, draws that pair instead. band is the (low, high)
frequencies shown, in Hz.
Source code in src/visualdynamics/plot/matrix_checks.py
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 | |