Emphasise a Reference Isopleth#
Forecasters read a tephigram against a handful of reference lines — the 0 °C
isotherm for the freezing level, −20 °C for the cold limit of the airframe
icing band, a mandatory pressure level. The emphasis option distinguishes
any member of any isopleth family.
The Freezing Level#
Map the member value to an empty style. The member keeps its family’s colour and draws at 1.5 pt instead of the usual 0.5 pt — the printed-chart idiom of same ink, heavier line:
import matplotlib.pyplot as plt
import tephpy # registers the "tephigram" projection
fig, ax = plt.subplots(subplot_kw={"projection": "tephigram"})
ax.isotherms(emphasis={0.0: {}})
Colour and Dashes#
Any of color, linewidth, linestyle and alpha overrides that
default, so the airframe icing band’s bounds can carry their own styling:
ax.isotherms(
emphasis={
0.0: {"color": "tab:cyan"},
-20.0: {"color": "tab:cyan", "linestyle": "--"},
}
)
An omitted key falls back to the family’s own style, so
{0.0: {"linestyle": "--"}} is a dashed member in the family’s colour at the
emphasis width.
Values the Interval Never Lands On#
An emphasised member is always drawn, whatever the zoom ladder would select, so the dendritic growth zone’s −12 °C and −18 °C bounds appear even though no isotherm interval includes them:
ax.isotherms(
emphasis={
-12.0: {"color": "tab:purple"},
-18.0: {"color": "tab:purple"},
}
)
A value outside the diagram’s domain is a no-op — it is simply never in view. That is silent on the analytic families (isotherms, dry adiabats and isobars); the curved moist adiabats and mixing ratios build through MetPy, which can warn about a far-out value before the diagram ever gets to ignore it, so emphasise a value those families actually cover.
Every Family, Every Tier#
The option is the same on all five families, so a mandatory pressure level is the same gesture:
ax.isobars(emphasis={500.0: {}})
and it takes the usual precedence — the accessor keyword over
tephpy.config over the convention default. A family reads
tephpy.config when the axes is created, and re-reads it on ax.clear(),
so set the configuration before creating the diagram it should apply to:
import matplotlib.pyplot as plt
import tephpy
tephpy.config.isotherms.emphasis = {0.0: {}}
fig, ax = plt.subplots(subplot_kw={"projection": "tephigram"})
Passing an empty mapping at the accessor emphasises nothing, which is how one diagram opts out of a configured emphasis:
ax.isotherms(emphasis={})
Note
Emphasis reaches a member’s line and its inline label. Where a family labels a diagram edge instead, that edge’s tick marks and tick labels take one colour for the whole family — matplotlib styles ticks per axis, not per tick — so an emphasised member’s edge tick is placed but not recoloured.