如何自定义 Seaborn/Matplotlib 热图颜色条

How to customiza Seaborn/Matplotlib heatmap colorbars

我需要自定义一个标签和刻度 使用 matplotlib 获得的热图颜色条目前没有成功。

我的数据已经发布,可以在这里找到:

我的工作代码:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

df = pd.read_csv("deltaGdata.csv")

df1 = df[['VARIANT', 'DDgun','mCSM', 'SDM', 'DeepDDG', 'DynaMut2']]
df1.set_index(['VARIANT'],inplace=True)

sns.set(rc = {'figure.figsize':(7, 20)})  # (width_inches, width_height)
ax = sns.heatmap(df1, cmap='rocket')
ax.set_yticks(np.arange(len(df1)) + .5)
ax.set_yticklabels(df1.index,fontname='DejaVu Sans', fontsize=14.5, fontweight='550' )
ax.set_xticklabels(df1,fontname='DejaVu Sans', fontsize=20, fontweight='550', rotation=90)

ax.set_title("ΔΔG (Kcal/mole)", fontname='DejaVu Sans', fontsize=24, fontweight='700')
figure = ax.get_figure()

figure.savefig('fig.png', dpi=300)
figure.savefig('fig.svg', dpi=300, format="svg")

这段代码生成了一个热图,其中的颜色条与其他代码相比具有非常小的刻度和数字 在最后的数字中。 我发现有关的文档很少 如何自定义颜色条,但没有任何有用的修复方法 我的问题。我也希望得到帮助,因为我认为 对其他 Matplotlib/Seaborn 用户有益。

我的理解是它由一个热图和一个颜色条子图组成,最后一个子图指定标签属性的大小。

print(ax.figure.axes)
[<AxesSubplot:title={'center':'ΔΔG (Kcal/mole)'}, ylabel='VARIANT'>, <AxesSubplot:label='<colorbar>'>]

# Add the following code
ax.figure.axes[-1].tick_params(labelsize=20)