更改 seaborn 热图颜色条上的刻度大小

Posted

技术标签:

【中文标题】更改 seaborn 热图颜色条上的刻度大小【英文标题】:Change tick size on colorbar of seaborn heatmap 【发布时间】:2015-03-06 02:11:23 【问题描述】:

我想增加与使用seaborn 模块创建的热图中的颜色条相对应的刻度标签大小。举个例子:

import seaborn as sns
import pandas as pd
import numpy as np

arr = np.random.random((3,3))
df = pd.DataFrame(arr)
ax = sns.heatmap(arr)

通常我会在颜色条轴对象上使用tick_params 方法更改labelsize 关键字,但使用heatmap() 函数我只能将kwargs 传递给颜色条构造函数。如何修改此图中颜色条的刻度标签大小?

【问题讨论】:

【参考方案1】:

调用heatmap 后,颜色条轴将在图形对象的axes 属性处获得引用。因此,您可以提前设置图形,也可以在使用 plt.gcf 绘制后获取对它的引用,然后以这种方式拉出颜色条轴对象:

import seaborn as sns
import pandas as pd
import numpy as np

arr = np.random.random((3,3))
df = pd.DataFrame(arr)
ax = sns.heatmap(arr)

cax = plt.gcf().axes[-1]
cax.tick_params(labelsize=20)

【讨论】:

谢谢!我不知道如何找到那个axes 对象。 请注意,您还可以传递将绘制颜色条的特定坐标区对象,但如果您对默认定位感到满意,那就有点过头了。【参考方案2】:

避免gcf()的方式略有不同:

import seaborn as sns
import pandas as pd
import numpy as np

arr = np.random.random((3,3))
df = pd.DataFrame(arr)

fig, ax = plt.subplots()
sns.heatmap(arr, ax=ax)
ax.tick_params(labelsize=20)

我几乎总是以这种方式开始我的情节,明确地创建一个figax 对象。它有点冗长,但由于我倾向于忘记我的matplotlib-foo,所以我不会对我正在做的事情感到困惑。

【讨论】:

以上是关于更改 seaborn 热图颜色条上的刻度大小的主要内容,如果未能解决你的问题,请参考以下文章

seaborn 热图的人工刻度标签

在 Seaborn 热图中保留一些刻度

使用 Seaborn 和 Matplotlib 在热图和线图的共享子图中对齐 x 轴刻度

Seaborn热图顶行和底行被部分截断[重复]

如何修复 matplotlib 和 seaborn 热图?

在 seaborn 热图上设置颜色条的最大值