Module progbg.formatters
Common utility formatters used by Graphs
Expand source code
"""Common utility formatters used by Graphs"""
from matplotlib.ticker import FuncFormatter
def set_yrange(min=None, max=None):
def tmp(fig, axes):
x, y = axes.get_ylim()
if min is None:
min = x
if max is None:
max = y
axes.set_ylim(min, max)
return tmp
def set_size(w, h):
def format(fig, axes):
fig.set_figheight(h)
fig.set_figwidth(w)
fig.tight_layout()
return format
def _axis_formatter(type, label="", tf=None):
units = dict(
p=1e-12,
n=1e-9,
u=1e-6,
m=1e-3,
c=0.01,
d=0.1,
S=1.0,
da=10.0,
h=100.0,
k=float(10e3),
M=float(10e6),
G=float(10e9),
T=float(10e12),
)
def tmp_num(tf):
def number_formatter(number, pos=0):
if tf:
to_from = units[tf[0]] / units[tf[1]]
number = to_from * number
magnitude = 0
while abs(number) >= 1000:
magnitude += 1
number /= 1000
return "%d%s" % (number, ["", "k", "M", "B", "T", "Q"][magnitude])
return number_formatter
def format(fig, axes):
getattr(axes, type).set_major_formatter(FuncFormatter(tmp_num(tf)))
axes.set_ylabel(label)
return format
def yaxis_formatter(label="", tf=None):
return _axis_formatter("yaxis", label, tf)
def xaxis_formatter(label="", tf=None):
return _axis_formatter("xaxis", label, tf)
def legend_remap(d):
def tmp(fig, axes):
h, labels = ax.get_legend_handles_labels()
l = [d[l] for l in labels]
ax.legend(h, l)
return tmp
Functions
def legend_remap(d)
-
Expand source code
def legend_remap(d): def tmp(fig, axes): h, labels = ax.get_legend_handles_labels() l = [d[l] for l in labels] ax.legend(h, l) return tmp
def set_size(w, h)
-
Expand source code
def set_size(w, h): def format(fig, axes): fig.set_figheight(h) fig.set_figwidth(w) fig.tight_layout() return format
def set_yrange(min=None, max=None)
-
Expand source code
def set_yrange(min=None, max=None): def tmp(fig, axes): x, y = axes.get_ylim() if min is None: min = x if max is None: max = y axes.set_ylim(min, max) return tmp
def xaxis_formatter(label='', tf=None)
-
Expand source code
def xaxis_formatter(label="", tf=None): return _axis_formatter("xaxis", label, tf)
def yaxis_formatter(label='', tf=None)
-
Expand source code
def yaxis_formatter(label="", tf=None): return _axis_formatter("yaxis", label, tf)