В зависимости от значимости данных и их распределения, вы можете работать с логарифмией c или расходящейся нормой. Параметры могут быть такими:
mport numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
import seaborn as sns
N = 20
df2 = pd.DataFrame({'col1': np.random.uniform(0, 0.6, N) * np.random.choice([1, 50], N),
'col2': np.random.uniform(0, 0.6, N) * np.random.choice([1, 50], N),
'col3': np.random.uniform(0, 0.6, N) * np.random.choice([1, 50], N)
})
norm = mcolors.LogNorm()
#norm = mcolors.DivergingNorm(vmin=0, vcenter=0.6, vmax=30)
sns.clustermap(df2, cmap='icefire', norm=norm,
center=18, fmt=".3f", linewidths=0.05, annot=True, figsize=(10, 6))