in vihds/plotting.py [0:0]
def xval_global_parameters(res, ncols=6):
ndata = len(res.ids)
nfolds = len(res.chunk_sizes)
qs = dict(zip(res.q_names, res.q_values))
indexes = np.unique([n.split(".")[0] for n in res.q_names], return_index=True)[1]
all_ps = [[n.split(".")[0] for n in res.q_names][index] for index in sorted(indexes)]
ps = []
for i, p in enumerate(all_ps):
if p + ".mu" in qs:
if np.shape(qs[p + ".mu"])[0] < ndata:
ps.append(p)
print("- ", ps)
if utils.is_empty(ps):
print("- No global parameters: not producing plot")
return
# Define geometry and figures
n = len(ps)
if n < ncols:
ncols = n
nrows = np.ceil(n / ncols).astype(int)
f, axs = pp.subplots(nrows, ncols, figsize=(2 * ncols, 2 * nrows))
f.suptitle("Global parameters", fontsize=14)
for i in range(nrows):
for j in range(ncols):
if nrows > 1:
ax = axs[i, j]
else:
ax = axs[j]
if (j + i * ncols) < len(ps):
name = ps[j + i * ncols]
ax.errorbar(
np.linspace(1, nfolds, nfolds), qs["%s.mu" % name], 1 / qs["%s.prec" % name], fmt=".",
)
ax.set_title(name)
ax.set_xlim([0.5, nfolds + 0.5])
ax.set_xticks(range(1, nfolds + 1))
if i == (nrows - 1):
ax.set_xlabel("Fold")
else:
if i > 0:
axs[i - 1, j].set_xlabel("Fold")
ax.set_visible(False)
if nrows > 1:
axs[i, 0].set_ylabel("Parameter value")
else:
axs[0].set_ylabel("Parameter value")
f.tight_layout(rect=(0, 0, 1, 0.96))
sns.despine()
return f