我有一个由随机值构成的矩阵,并用ax.matplot
对其进行了绘制,其中每个矩阵单元的值都绘制在矩阵单元的中心,我需要增大图的大小( (特别是宽度),并将颜色图(cmap)设置为“透明”,其中矩阵图的单元格将为白色,而单元格中心的矩阵值将为黑色。
代码:
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()
编辑
代码(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轴的索引中的数字从0到15变化,并以5、5、10、15(I将其标记为红色)。但是在第二张图片(也用红色标记)中,值从0到19,没有步进。如果可能的话,我需要得出第二张图片的结果,索引从0到19不间断地变化。
图片1:我得到的东西: https://i.stack.imgur.com/mlExQ.png
图片2:我需要得到的东西: https://i.stack.imgur.com/T3CC4.png
答案 0 :(得分:0)
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)