visualdynamics.plot.multi_point¶
multi_point
¶
A multi-point control run on one plot: the composite heavy over its channels, both bands, and the lines each channel is outside its own.
The question the view answers is the one the composite cannot: is every control channel inside its own band, and where one is not, was the composite inside its band there? So the composite is the heavy curve the controller held, each channel stands behind it as a light one, and the two bands are shaded as a specification's zones are everywhere else here. Between the composite band and the individual band is yellow, the ground a channel may stand in and the composite may not; past the individual band is red above and blue below, where no channel may be.
Every line a channel is outside its own band is marked on that channel with its marker filled, and every line the composite is outside its band with a filled circle on the composite. The legend says, for each, how many lines are outside and, for each channel, how many of those the composite was inside at, because that number is the reason a multi-point run has two judgments.
Each channel wears a marker as well as a color, for the reason the sine tracking view gives: several curves of one quantity are compared line for line here, and a reader who cannot tell two of the palette's hues apart must still be able to tell one channel from another. The composite is told from them by its width and its color, the plot's own foreground, never a palette hue.
Functions:
| Name | Description |
|---|---|
describe_composite |
The composite in a line: its strategy, how many channels, and how |
describe_channel |
One channel in a line: how many lines are outside its own band |
build_multi_point |
Draw a multi-point reading on |
band_key |
The legend entries for the shading, (zone, name), each only when |
Classes¶
Functions:¶
describe_composite
¶
describe_composite(reading: MultiPointReading) -> str
The composite in a line: its strategy, how many channels, and how many lines are outside the composite band with their share, as in 'composite, average of 4: 0 lines outside −3/+3 dB (0.0 %)'.
Source code in src/visualdynamics/plot/multi_point.py
describe_channel
¶
describe_channel(channel: Any, reading: MultiPointReading) -> str
One channel in a line: how many lines are outside its own band and how many of those the composite was inside at, as in '2Z+: 37 lines outside −6/+6 dB, 37 with the composite inside'.
Source code in src/visualdynamics/plot/multi_point.py
build_multi_point
¶
build_multi_point(layout: Any, specification: Any, measured: Any, *, channels: Sequence[int | str] | None = None, strategy: str = 'average', weights: Sequence[float] | None = None, composite_band: str | tuple[float, float] = 'warning', individual_band: str | tuple[float, float] = INDIVIDUAL_DB, spec_record: int | None = None, scale_db: float | None = None, unit_system: Any = None, theme: Any = None, reading: MultiPointReading | None = None) -> MultiPointReading
Draw a multi-point reading on layout and return it
(core.multi_point.multi_point, with every argument passed on).
reading, when given, is that reading already made (the window
makes it on its worker thread) and is drawn as it is.
The reference in gray, the composite band and the individual band around it shaded, each channel light in its own color and marker with its lines outside its own band filled, and the composite heavy with its lines outside its band marked. Every curve is the measurement scaled as the comparison scaled it, so what is drawn against the bands is what was judged against them.
Source code in src/visualdynamics/plot/multi_point.py
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 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 | |
band_key
¶
band_key(zones: set, reading: MultiPointReading) -> list[tuple[str, str]]
The legend entries for the shading, (zone, name), each only when
it was drawn: zones holds any of 'warning', 'above' and 'below',
as _shade_limit_zones returns them.