Matplotlib颜色图设置为阈值以下的黑色

时间:2020-06-06 05:56:09

标签: python arrays matplotlib visualization colormap

我正在使用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)

1 个答案:

答案 0 :(得分:1)

检查此代码:

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

这给了我这张图片:

enter image description here

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