plt.matshow()显示数值
时间: 2023-10-07 16:04:03 浏览: 260
`plt.matshow()`函数可以显示二维数组或矩阵,但默认不会显示数值。不过,我们可以通过在每个单元格中添加文本来显示数值。
以下是一个示例代码:
``` python
import numpy as np
import matplotlib.pyplot as plt
# 创建一个 3x3 的随机矩阵
matrix = np.random.rand(3, 3)
# 绘制矩阵
fig, ax = plt.subplots()
im = ax.matshow(matrix)
# 在每个单元格中显示数值
for (i, j), z in np.ndenumerate(matrix):
ax.text(j, i, '{:0.1f}'.format(z), ha='center', va='center')
plt.show()
```
这将绘制一个大小为 3x3 的随机矩阵,并在每个单元格中显示该单元格的值。`np.ndenumerate()`函数可以将矩阵中的每个元素及其索引作为一个元组返回,方便我们在循环中访问每个元素。`ax.text()`函数可以在指定的位置添加文本,这里我们使用该单元格的行列索引作为文本的位置。`ha`和`va`参数分别指定水平和垂直对齐方式,这里我们选择居中对齐。`'{:0.1f}'.format(z)`是一个格式化字符串,将矩阵元素格式化为一个保留一位小数的浮点数。
注意,由于 `matshow` 函数使用的是颜色映射而不是实际的颜色,因此在某些情况下可能会出现文本与背景颜色相似的问题,因此可能需要更改颜色映射或文本颜色以解决此问题。
阅读全文