不是用颜色显示出来 而是得到一张满是数字的图片
时间: 2024-11-20 14:33:55 浏览: 17
如果你想要将二维数组或矩阵转换成一张只包含数字的图片,并不是通过颜色映射来呈现,而是直接打印出每个元素对应的数值,那么你可以选择不使用`imshow()`,而是采用简单的文本排列或者绘制格子的方式。一种简单的方法是利用`matshow()`函数,它不会自动应用颜色映射,而是在每个单元格中显示数字。
首先,你需要准备一个二维数组(列表嵌套列表形式),然后创建一个新的图表:
```python
import matplotlib.pyplot as plt
# 示例二维数组
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 创建一个新的图形
fig, ax = plt.subplots()
# 使用matshow绘制网格,数字表示值
ax.matshow(matrix, cmap=None)
# 设置字体大小和位置
for i in range(len(matrix)):
for j in range(len(matrix[0])):
ax.text(j, i, matrix[i][j], va='center', ha='center')
plt.axis('off') # 关闭坐标轴
plt.show()
```
这个例子会生成一张全白背景的图片,每个单元格显示对应数组的数字。如果你希望保持白色背景,同时数字有颜色差异,可以使用其他方法,比如使用`scatter()`或`text()`函数逐点添加标记。
阅读全文