用于绘图的中心调色板 - Seaborn

centre palette for plotting - Seaborn

我希望使用有趣的颜色图将 seaborn 调色板居中。具体来说,我希望零表示分歧。但是,可能值分布不均。所以最小值和最大值与 0 的距离不同。因此,调色板不对齐。我仍然希望使用相同的调色板颜色,但将分歧集中在 0。

df = pd.DataFrame({ 
    'Val' : ['A','A','A','A','A','A','A','A','A','A','A','A'],                  
    'A_1' : [-5, 2, 3, 4, 5, 7, 1, -4, -2, 6, -1, 0],                      
        })

g = sns.FacetGrid(df, 
                  col = 'Val', 
                  hue = 'A_1',                               
                  aspect = 1,
                  height = 5, 
                  palette = 'BrBG',
                  sharex = False)


g.map(sns.swarmplot, 'Val', 'A_1')

很遗憾,您不能直接这样做。

有一种解决方法应该可以正常工作:seaborn's diverging palette

它允许您创建您选择的调色板。您可以选择以与您想要的完全匹配的方式定位颜色。

文档中的示例非常好。另一个很好的例子:

创建具有“中间”而不是“中点”的发散调色板