Is there any good reason for the fit_transform method of UmapExperiment(https://github.com/HK3-Lab-Team/umapviz/blob/master/src/umapviz/umap_exp.py#L528) to accept n_neighbors and min_distance as parameters, considering that they are already set by the constructor of UmapExperiment? In case you want to change the value of them after an UmapExperiment is instantiated? Why not change the attribute of the instance directly and then call fit_transform?
This double chance to get the same result is causing me some confusion... also citing the Zen of Python: There should be one-- and preferably only one --obvious way to do it.