Matplotlib imshow / matshow отображает значения на графике
Я пытаюсь создать сетку 10x10, используя либоimshow
или жеmatshow
в Матплотлибе. Приведенная ниже функция принимает массив пустых данных в качестве входных данных и строит сетку. Однако я хотел бы, чтобы значения из массива также отображались внутри ячеек, определенных сеткой. До сих пор я не мог найти правильный способ сделать это. я могу использоватьplt.text
размещать вещи над сеткой, но это требует координат каждой ячейки, что совершенно неудобно. Есть ли лучший способ сделать то, что я пытаюсь сделать?
Спасибо!
ПРИМЕЧАНИЕ: приведенный ниже код пока не принимает значения из массива, я просто играл сplt.text
.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import colors
board = np.zeros((10, 10))
def visBoard(board):
cmap = colors.ListedColormap(['white', 'red'])
bounds=[0,0.5,1]
norm = colors.BoundaryNorm(bounds, cmap.N)
plt.figure(figsize=(4,4))
plt.matshow(board, cmap=cmap, norm=norm, interpolation='none', vmin=0, vmax=1)
plt.xticks(np.arange(0.5,10.5), [])
plt.yticks(np.arange(0.5,10.5), [])
plt.text(-0.1, 0.2, 'x')
plt.text(0.9, 0.2, 'o')
plt.text(1.9, 0.2, 'x')
plt.grid()
visBoard(board)
Выход: