Matplotlib: 增加ax.matshowwidth/height,设置色图(cmap)为透明

Matplotlib: Increase ax.matshow width/height, and set color map (cmap) to transparent

我有一个由随机值构成的矩阵,我用 ax.matplot 绘制了它,其中每个矩阵单元格的值绘制在矩阵单元格的中心,我需要增加绘图(特别是宽度)并将颜色图 (cmap) 设置为 "transparent",其中矩阵图的单元格将为 white 并且矩阵值位于black 的单元格。

代码:

import numpy as np
import matplotlib.pyplot as plt

low_dim = 0
high_dim = 20

matrix = np.random.randint(low_dim, high_dim, (high_dim,high_dim))
print (matrix)
fig, ax = plt.subplots()

ax.matshow(matriz, cmap=None,interpolation='nearest')

for i in xrange(20):
    for j in xrange(20):
        number = matrix[j,i]
        ax.text(i, j, str(number), va='center', ha='center')


plt.show()

编辑

也就是代码中的matrix(https://i.stack.imgur.com/e3mGO.png(matrix),用命令matrix = np.random.randint(low_dim, high_dim, (high_dim,high_dim))生成的矩阵,图片来自控制台。

我试过更改 fig,ax = plt.subplot() 中的 figsize,但没有任何改变。我也设置了 cmap = none 但什么也没发生。

还有一个问题就是第一张图的x轴和y轴的index的数字从0到15不等,步进5,比如0, 5, 10、15(我已将其标记为红色)。但是在第二张图中(也用红色标记),值是从0到19,没有步长。如果可能的话,我需要得到第二张图片的结果,索引从 0 到 19 不等。

图1:我得到的是什么: https://i.stack.imgur.com/mlExQ.png

图2:我需要得到的东西: https://i.stack.imgur.com/T3CC4.png

matshow 接受原点和 alpha 参数。剩下的只是设置刻度和标签。

ax.matshow(matrix, origin='lower', alpha=0, cmap=None, interpolation='nearest')

tick_labels = range(high_dim)
ax.set_xticks([], minor=False)
ax.set_xticks(np.arange(-.5, 20, 1), minor=True)
ax.set_yticks([], minor=False)
ax.set_yticks(np.arange(-.5, 20, 1), minor=True)
ax.set_xticklabels([], minor=False)
ax.set_xticklabels(tick_labels, minor=True)
ax.set_yticklabels([], minor=False)
ax.set_yticklabels(tick_labels, minor=True)
ax.xaxis.set_ticks_position('bottom')
ax.grid(which='minor', color='grey', linestyle='-', linewidth=1)