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

Change tick size on colorbar of seaborn heatmap

我想增加与使用 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 传递给颜色条构造函数。如何修改此图中颜色条的刻度标签大小?

调用 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)

一种稍微不同的方式避免了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,所以我不会对我正在做的事情感到困惑。