Я пытаюсь создать сетку 10x10, используя либо imshow
, либо matshow
в Matplotlib. Нижеприведенная функция берет в качестве входного значения массив numpy и отображает сетку. Тем не менее, я хотел бы иметь значения из массива, также отображаемые внутри ячеек, определенных сеткой. До сих пор я не мог найти правильный способ сделать это. Я могу использовать 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)
Вывод: