MCPcopy Create free account
hub / github.com/VladyslavUsenko/basalt / plot_eigenvalues

Method plot_eigenvalues

python/basalt/latex/plot.py:231–276  ·  view source on GitHub ↗
(self, exps, spec)

Source from the content-addressed store, hash-verified

229 fig.suptitle(spec.suptitle)
230
231 def plot_eigenvalues(self, exps, spec):
232
233 logs = [exps[e].runs[spec.sequence].log for e in spec.experiments]
234 names = [exps[e].display_name for e in spec.experiments]
235
236 num_plots = 1
237
238 if spec.figsize is None:
239 spec.figsize = [5.2, 2 * num_plots]
240
241 fig, axs = plt.subplots(num_plots, 1, figsize=spec.figsize)
242
243 ax = axs
244
245 for i, (log, name) in enumerate(zip(logs, names)):
246 if log is not None:
247 min_ev = [np.min(e) for e in log.sums.marg_ev[1:]]
248 #ax.plot(min_ev, ":", label=name, color=default_colors[i])
249 ax.plot(min_ev, default_lines[i], label=name, color=default_colors[i])
250
251 ax.set_yscale("symlog", linthresh=1e-8)
252 ax.legend(loc=spec.legend_loc)
253
254 #ax.set_title("smallest eigenvalue {} {}".format(name, spec.sequence))
255
256 if spec.sequence == "eurocMH01":
257 ax.set_xticks([i * 1000 for i in range(4)])
258 ax.xaxis.set_minor_locator(matplotlib.ticker.FixedLocator([i * 1000 + 500 for i in range(4)]))
259
260 if spec.sequence == "kitti10":
261 ax.set_xticks([i * 100 for i in range(4)])
262 ax.xaxis.set_minor_locator(matplotlib.ticker.FixedLocator([i * 100 + 50 for i in range(4)]))
263
264 ax.set_yticks([-1e4, -1e-4, 0.0, 1e-4, 1e4])
265 ax.set_ylim(bottom=-1e8, top=1e8)
266 # ax.yaxis.tick_right()
267 ax.set_ylabel("$\\sigma_{min}$", rotation=0)
268 ax.yaxis.set_label_coords(0, 1.05)
269
270 if spec.ylim.top is not None:
271 ax.set_ylim(top=spec.ylim.top)
272 if spec.ylim.bottom is not None:
273 ax.set_ylim(bottom=spec.ylim.bottom)
274
275 if spec.suptitle:
276 fig.suptitle(spec.suptitle)
277
278 def plot_trajectory(self, exps, spec):
279

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected