Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove x and y axis labels in a clustermap?

Tags:

python

seaborn

I am creating a plot based on a DataFrame:

cg = sns.clustermap(df_correlations.T)

The problem is that the x and y axis have unwanted labels in it which come from a hierarchical index. Thus I want to try and remove those labels e.g. like this:

ax = cg.fig.gca()
ax.set_xlabel('')
ax.set_ylabel('')

But this has no effect. How can I remove the labels on the x and y axis?

like image 630
Stefan Falk Avatar asked Sep 15 '17 07:09

Stefan Falk


3 Answers

Without a mcve of the issue it's hard to know where the labels come from (I don't know how the dataframe needs to look like such that labels are produced, because by default there should not be any labels.) However, the labels can be set - and therefore also set to an empty string - using the known methods .set_xlabel and .set_ylabel of the heatmap axes of the cluster grid.

So if g is a ClusterGrid instance,

g = sns.clustermap(...)

you can get the heatmap axes via

ax = g.ax_heatmap

and then use any method you like to manipulate this matplotlib axes.

ax.set_xlabel("My Label")
ax.set_ylabel("")
like image 158
ImportanceOfBeingErnest Avatar answered Oct 13 '22 14:10

ImportanceOfBeingErnest


Turn off xticklabel, and yticklabel will address your problem.

sns.clustermap(df,yticklabels=False,xticklabels=False)
like image 27
YGao Avatar answered Oct 13 '22 13:10

YGao


try plt.axis('off'), it may solve your problem.

like image 27
Wubin Ding Avatar answered Oct 13 '22 14:10

Wubin Ding