如何区分色条光谱低端的值?(sns热图)

2024-09-30 12:26:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个sns clustermap概述如下

fig = plt.figure(figsize=(14,10))
sns.clustermap(df2,cmap='icefire', center=18, fmt=".3f", linewidths=0.05, annot=True)

但是我有一些非常小的值(例如,0.6),它们刚好高于0,并且它们都以相同的方式着色。我玩过vmaxvmin,还使用了发散的颜色贴图,但我似乎无法让它们比它们更突出。如有任何建议,将不胜感激

image

更新 我使用了z_score = 0作为一个参数,使其在0附近正常化,似乎效果很好


Tags: true方式figpltcmapfigurecenterdf2
1条回答
网友
1楼 · 发布于 2024-09-30 12:26:26

根据数据的重要性及其分布,您可以使用对数或发散范数。参数可以如下所示:

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

example plot

相关问题 更多 >

    热门问题