sample color/marker legend prints on first round of interactive, or by study.plot_study_sample_legend()

assumes that n colors == n markers == n sample types