In our previous post Matplotlib custom SI-prefix unit tick formatter we showed how to format a matplotlib Y axis with a custom unit with SI prefixes.
Similarly, we can use UliEngineering.Math.Decibel
in order to format plots (most notably plots with a logarithmic Y axis) as decibels:
from UliEngineering.Math.Decibel import * import matplotlib.ticker as mtick def decibel_formatter(v0=1.0, unit='dB'): def format_value(value, pos=None): dB = value_to_dB(value, v0=v0) return f'{dB:.0f} {unit}' return format_value # Usage example: plt.gca().set_yscale("log") # Optional plt.gca().yaxis.set_major_formatter(mtick.FuncFormatter(decibel_formatter()))