gpt4 book ai didi

python - 从 Seaborn/Matplotlib 中的颜色条中删除最低颜色

转载 作者:太空狗 更新时间:2023-10-30 01:19:10 25 4
gpt4 key购买 nike

如果我设置 shade_lowest = False,颜色栏仍然包含最低级别(紫色)。有什么通用的方法可以完全删除它吗?

enter image description here

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

a = np.random.normal(0, 1, 100)
b = np.random.normal(0, 1, 100)

fig, ax = plt.subplots()
sns.kdeplot(a, b, shade = True, shade_lowest = False, cmap = "viridis", cbar = True, n_levels = 4, ax = ax)

plt.show()

最佳答案

一个解决方案肯定是不从一开始就创建这个关卡。

这里我们根据定位器选择最多 5 个级别,并在调用 contourf 绘图时删除最低的级别,这样一开始这个级别就不存在了。然后自动创建颜色条就可以完美地工作了。

import numpy as np; np.random.seed(5)
import matplotlib.pyplot as plt
from matplotlib import ticker
from scipy import stats

x = np.random.normal(3, 1, 100)
y = np.random.normal(0, 2, 100)
X, Y = np.mgrid[x.min():x.max():100j, y.min():y.max():100j]
positions = np.vstack([X.ravel(),Y.ravel()])
values = np.vstack([x,y])
kernel = stats.gaussian_kde(values)
Z = np.reshape(kernel(positions).T, X.shape)

N=4
locator = ticker.MaxNLocator(N + 1, min_n_ticks=N)
lev = locator.tick_values(Z.min(), Z.max())


fig, ax = plt.subplots()
c = ax.contourf(X,Y,Z,levels=lev[1:])
ax.scatter(x,y, s=9, c="k")
fig.colorbar(c)

plt.show()

enter image description here

关于python - 从 Seaborn/Matplotlib 中的颜色条中删除最低颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49211334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com