-
Notifications
You must be signed in to change notification settings - Fork 603
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
scanpy.pl.stacked_violin - remove "marker label" whitespace if var_names is a list of genes #3320
Comments
Yeah, that’s true. I think depending on what’s happening, it’s actually the spacer we add, not the area for the dendrogram, but sometimes we also need that spacer … Our plotting code is complicated and needs to be overhauled. If anyone feels like diving int |
I was able to "hack" my way to a solution. However I needed to call marker_genes = ["Pou4f3", "Calb2", "Pvalb", "Smpx", "Mlf1", "Sox2"] # 5 random Cochlear HCs P7 + Sox2
violin_fig = sc.pl.stacked_violin(vis_adata, marker_genes, var_group_positions=None, title="Marker gene expression per cluster", groupby="spatial_clusters", cmap="YlOrRd", show=False, return_fig=True)
# Remove the existing legend and add a new vertically-oriented one
violin_fig.legend(show = False)
violin_fig.add_totals()
violin_fig.make_figure()
# For some reason, deleting all axes and remaking the figure makes it without the spacer above the plot (which was in ax[2] I think)
violin_axes = violin_fig.fig.get_axes()
for ax in violin_axes:
violin_fig.fig.delaxes(ax)
violin_fig.make_figure() |
very cool! Happy you found a workaround. I’d really like to toss a lot of the plotting out and replace it with something declarative … |
@flying-sheep I feel like diving in, do you have an issue/PR to work on? I've been using scanpy for a long time, and want to contribute |
Hi @mxposed, I also see the same thing with dotplots as well. My workaround is the same as with the stacked_violin |
Please make sure these conditions are met
What happened?
Basically I am creating a stacked violin plot that uses a list of marker genes for the "var_names" argument. But whenever I create the plot, it has extra whitespace at the top of the plot where the marker gene labels should go. This is very evident when you add a figure title, which gets place above the padding whitespace. I have not really found a way around this, and am currently looking through the scanpy internal code to see if there is some padding setting that I can undo. If there is a workaround to this or some option that I am missing I would like to know.
Thanks!
Minimal code sample
Error output
Will post in the next comment on this thread. Seems I cannot drag-n-drop images into this block.
Versions
I am including relevant package versions. Can provide more if needed
Python 3.12.7
The text was updated successfully, but these errors were encountered: