【问题标题】:How do I remove the axis tick marks on seaborn heatmap如何删除 seaborn 热图上的轴刻度线
【发布时间】:2019-08-25 16:14:45
【问题描述】:

我有一个 seaborn 热图,但我需要删除显示为破折号的轴刻度线。我想要刻度标签,但只需要在两个轴上的每个刻度上删除破折号 (-)。我当前的代码是:

sns.heatmap(df, annot=True, fmt='.2f', center=0)

我试过绝望,但没有用。

【问题讨论】:

  • ax.tick_params(left=False, bottom=False)?
  • 成功了。我实际上在询问之前尝试过,但我在 sns.heatmap() 行之前输入了该行。如果将 plt.tick_params() 放在 sns.heatmap() 之前,是否有它不起作用的原因??
  • 问题是,在您调用sns.heatmap 之前,这些参数周围没有坐标轴可以应用。因此,我建议使用ax = sns.heatmap(..); ax.tick_param(..),很明显您需要ax 才能工作。

标签: matplotlib seaborn axis-labels


【解决方案1】:
ax = sns.heatmap(df, annot=True, fmt='.2f', center=0)
ax.tick_params(axis='both', which='both', length=0)

ax 是一个 matplotlib.axes 对象。可以在此对象中更改所有轴参数,这是 matplotlib 教程中有关如何change tick parameters 的示例。 both 同时选中xy 轴,然后将它们的length 更改为0,这样刻度就不再可见了。

【讨论】:

  • 请添加一些解释。
【解决方案2】:

@ImportanceOfBeingEarnest 在我想添加为答案的 cmets 中有一个很好的答案(以防评论被删除)。

对于heatmap

ax = sns.heatmap(df, annot=True, fmt='.2f', center=0)
ax.tick_params(left=False, bottom=False) ## other options are right and top

如果这不是clustermap(就像这里的How to remove x and y axis labels in a clustermap?),你会有一个额外的电话:

g = sns.clustermap(...)
g.ax_heatmap.tick_params(left=False, bottom=False)

对于任何在这里徘徊寻找删除刻度标签的相关任务的人,请参阅此答案 (https://stackoverflow.com/a/26428792/3407933)。

【讨论】:

  • clustermap 上面的答案对我不起作用。相反,我使用:g.ax_heatmap.tick_params(tick2On=False, labelsize=False)。这确实删除了刻度线及其标签。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-19
  • 1970-01-01
  • 2021-12-20
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多