首页 > 解决方案 > 为什么使用 seaborn 时 vmin 和 vmax 不更新颜色条?

问题描述

    ax = sns.heatmap(df1, norm = LogNorm(), cmap = 'jet', vmin = 100000, vmax = 50000000)

当我添加 vmin 和 vmax 参数时,颜色条比例不变。什么会导致这个?

标签: python

解决方案


看看这个样本:

import matplotlib.pyplot as plt
import math
import numpy as np
import seaborn as sns
from matplotlib.colors import LogNorm

minX, maxX, minY, maxY = -2., 2., -2., 2.
x = np.linspace(minX, maxX, 100)
y = np.linspace(minY, maxY, 100)
X, Y = np.meshgrid(x, y)
z = np.sin(X**2 + Y**2) / (X**2 + Y**2) + 1

sns.heatmap(z, norm = LogNorm(vmin=1, vmax=2), cmap = 'jet',)

plt.show()

这里 z.min()=0.78,z.max()=2.0。

vmin=1 削减值 (0.78...1.0) 并因此创建一个标记为 10^0 的环: 在此处输入图像描述


推荐阅读