我有一个由随机整数组成的方阵,定义如下:
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绘制在网格中生成的矩阵,其方式是将每个单元格的值(权重)打印在每个单元格的中心,并且x的范围从0到20 y轴,如下面的图片(请注意,示例中的文本为'x'和'o',我需要的是权重,以整数形式而不是文本形式):
答案 0 :(得分:0)
我从this post中提取了大部分信息。
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()
答案 1 :(得分:-1)
正确的模块将是天生的。它具有您要求的所有功能以及更多...
尝试使用https://seaborn.pydata.org/generated/seaborn.heatmap.html。我不会为您介绍不同的选项,因为它们的确有据可查。
祝好运!
顺便说一句,您将希望使用熊猫数据透视表以实现舒适的兼容性。