Матрица построения взвешенных ячеек в сетке с Matplotlib - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть квадратная матрица, построенная из массива случайных целых чисел, определенных ниже:

import numpy as np

dim_low, dim_high = 0, 20 #array of random integers' dimensions

matrix = np.random.random_integers(low = dim_low,high = dim_high, size=(dim_high,dim_high))
print(matrix) #the matrix of defined with repetitions of the array.

Результирующая матрица на рисунке: https://i.stack.imgur.com/eEcCh.png

ЧтоМогу ли я сделать, чтобы построить матрицу, сгенерированную в сетке с помощью Matplotlib, таким образом, чтобы значения каждой ячейки (веса) были напечатаны в центре каждой ячейки, и есть шкала от 0 до 20 по оси x, y,как на изображении ниже (обратите внимание, что 'x' и 'o' - это текст в примере, мне нужны веса в целочисленной форме,не текстовая форма):

https://i.stack.imgur.com/9mBuG.png ( здесь )

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Я вытащил большую часть этого из этого поста .

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

fig, ax = plt.subplots()

for i in range(0, high_dim):
    for j in range(0, high_dim):
        val = matrix[i,j]
        ax.text(i+0.5, j+0.5, str(val), va='center', ha='center')

ax.set_xlim(low_dim, high_dim)
ax.set_ylim(low_dim, high_dim)
ax.set_xticks(np.arange(high_dim))
ax.set_yticks(np.arange(high_dim))
ax.grid()

plt.show()
0 голосов
/ 25 ноября 2018

Правильный модуль для этого будет морской.В нем есть все функции, которые вы запрашиваете, и даже больше ...
Попробуйте использовать https://seaborn.pydata.org/generated/seaborn.heatmap.html. Я не буду знакомить вас с различными вариантами, потому что они действительно хорошо документированы.
Удачи!

Кстати, для удобной совместимости вам понадобится сводная таблица panda.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...