Matplotlib 颜色图设置为低于阈值的黑色

Matplotlib Colormap Set to Black Below Threshold

我正在使用 imshow 绘制稀疏矩阵,并希望将 0 个条目涂成黑色。我遵循了 this answer 中给出的建议,但我的情节仍然有 0 个条目为白色,这令人困惑,因为最高权重的条目是热黄色。非常感谢任何帮助。

这是我的代码:

cmap1 = cm.get_cmap('inferno', 128)
cmap1.set_under(color='black')
im_plot = ax1.imshow(P_im,cmap=cmap1,norm=LogNorm(vmin=1e-30, vmax=np.max(P_im)+1e-15))
ax1.set_title("Title",size=10)

检查此代码:

from matplotlib import cm
import numpy as np
import matplotlib.pyplot as plt

fig, ax1 = plt.subplots(1, 1, figsize = (4, 4))

x = np.random.binomial(n = 1, p = 0.1, size = (20, 20))

cmap1 = cm.get_cmap('Greys_r', 2)
im_plot = ax1.imshow(x, cmap = cmap1)
ax1.set_title("Title", size = 10)

plt.show()

这给了我这张图片:

我用x = np.random.binomial(n = 1, p = 0.1, size = (20, 20))生成了一个随机稀疏矩阵,用你的数据替换它。