【发布时间】:2022-01-03 20:02:27
【问题描述】:
我正在尝试使用 matplotlib(3.5 版本)在 Python 中可视化具有 (10, 10) 正方形形状的随机数组。我还包括 xaxis 和 yaxis 刻度,但 10 的刻度显示空数据。有人知道怎么解决吗?
这是我的代码:
import numpy as np
from matplotlib import pyplot as plt
import matplotlib.pylab as pylab
params = {'legend.fontsize': 'medium',
'figure.figsize': (15, 5),
'axes.labelsize': 'x-large',
'axes.titlesize':'x-large',
'xtick.labelsize':'x-large',
'ytick.labelsize':'x-large'}
pylab.rcParams.update(params)
arr = np.random.rand(10, 10)
plt.imshow(arr)
plt.ylim(0, 10)
plt.xlim(0, 10)
plt.xticks(np.arange(0.0, 11.0, 1.0))
plt.yticks(np.arange(0.0, 11.0, 1.0))
plt.show()
这是生成的图像:
【问题讨论】:
-
因为数组在 python 中索引为零,而您要求的数组大小为 10,所以 0-9?
-
pyhton 数组从 0 开始索引。因此,两个轴的值都在 0-9 之间,请注意,每个刻度也指向“像素”的中心。你可以修改你的 lims
plt.xlim((-0.5,9.5))和plt.ylim((-0.5,9.5))。最后,如果您确实需要数字介于 1 和 10 之间,您可以使用 xticks 和 yticks:plt.xticks(np.arange(10), np.arange(1,11))和plt.yticks(np.arange(10), np.arange(1,11))请注意,如果您希望刻度从像素的左下角开始,您可以使用第一个 arange刻度线(我认为一定是np.arange(-0.5,9.5,1),但我不确定)
标签: python numpy matplotlib visualization