python - 对于形状为 (2,2) 的 numpy 数组,为什么 imshow 命令显示沿 x 和 y 轴的一系列值?这些值是什么?

标签 python matplotlib

enter image description here我想使用 imshow 将过滤器权重显示为颜色。但我得到了沿 y 轴和 x 轴的一系列值。我预计必须只有 2 个 xtick 标签和 2 个 ytick 标签。我该如何克服这个问题?

a = np.array([[0.1665, 0.2390],[0.2034,0.0694]])
plt.imshow(a,cmap=plt.cm.gray)

最佳答案

当您显示图像时,Matplotlib 会自动计算出 x 轴和 y 轴标签。如果你想覆盖这个,你需要自己手动设置刻度。使用matplotlib.pyplot.xticksmatplotlib.pyplot.yticks这样做:

import matplotlib.pyplot as plt
import numpy as np

a = np.array([[0.1665, 0.2390], [0.2034,0.0694]])
plt.imshow(a, cmap=plt.cm.gray, vmin=0, vmax=1)

# New
plt.xticks(list(range(a.shape[1])))
plt.yticks(list(range(a.shape[0])))

为了设置 x 和 y 标签,我创建了一个列表,每个维度中包含从 0 到尽可能多的元素,以便每个过滤器权重表示为代表性图像中的一个位置。最后一点是,如果您没有指定要在图像中可视化的最小和最大强度,它将默认为 2D 数组中的最小和最大值。假设您的权重范围在 [0,1] 之间,请将 imshow 调用中的 vminvmax 属性设置为分别为 0 和 1。

我们得到:

Weights

关于python - 对于形状为 (2,2) 的 numpy 数组,为什么 imshow 命令显示沿 x 和 y 轴的一系列值?这些值是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56521608/

相关文章:

python - 将 python 中的字符串与文本文件进行比较

python - 无法在 Mac 上安装 Matplotlib

python - 在 Seaborn 中向热图注释添加单位

python - 在 Python/Matplotlib 中给文本加下划线

python - 为什么 60GB 内存在 MySQL 连接器 fetchall() 上消失?

python - Collat​​z 猜想回文

python - 如何使用 matplotlib 保存循环中的每个图形

python - 在 matplotlib 中分层轮廓图和表面图

python - Django:通过模型自动生成的 StackedInline 更友好的 header ?

python - 异常处理: Differentiating between instances of the same error in Python