该脚本使用 NumPy 生成随机矩阵,然后使用 Matplotlib 可视化该矩阵,生成一个美观的矩阵图像。
本文将展示一个使用 NumPy 和 Matplotlib 生成随机矩阵的可视化示例。该脚本首先使用 NumPy 生成一个随机矩阵,然后使用 Matplotlib 将其可视化为一个美观的图像。该图像的背景设置为白色,每个单元格中的数字使用黑色标签显示。图像的轴线和刻度标签也被隐藏,以达到简洁的效果。
该脚本还可以将 NumPy 数组格式化为 Python 列表格式,方便 further processing。最后,该脚本将生成的图像保存到当前目录下,命名为 “matrix_visualization.png”。
通过该脚本,您可以快速生成随机矩阵并将其可视化,帮助您更好地理解和分析数据。
import numpy as np
import matplotlib.pyplot as plt
def generate_number_table(n, lower=10, upper=99):
# 使用 NumPy 生成随机矩阵
np_array = np.random.randint(lower, upper + 1, size=(n, n))
py_list = np_array.tolist()
# 创建图像并设置背景为白色
fig, ax = plt.subplots()
ax.set_facecolor("white") # 设置背景颜色为白色
# 在图中为每个单元格添加黑色的数值标签
for (i, j), val in np.ndenumerate(np_array):
ax.text(j, i, str(val), ha="center", va="center", color="black")
# 隐藏所有轴的边框线
for spine in ax.spines.values():
spine.set_visible(False)
# 设置轴的外观
ax.set_xticks(np.arange(n) - 0.5, minor=True) # 设置网格线位置
ax.set_yticks(np.arange(n) - 0.5, minor=True)
# ax.grid(which="minor", color="gray", linestyle="-", linewidth=2) # 显示网格线
ax.tick_params(which="both", size=0) # 隐藏主刻度
ax.set_xticks([])
ax.set_yticks([]) # 隐藏所有刻度标签
# 设置轴的范围,使其围绕数值正好显示
ax.set_xlim(-0.5, n - 0.5)
ax.set_ylim(n - 0.5, -0.5)
# plt.title("Matrix Visualization")
# 保存图像到当前目录
plt.savefig("matrix_visualization.png", format="png")
# plt.show()
# 格式化 NumPy 数组输出为字符串列表
np_array = ["[" + " ".join(map(str, row)) + "]" for row in np_array]
return py_list, np_array
py_list, np_array = generate_number_table(20)
print("标准的 Python 列表格式:")
for row in py_list:
print(row)
print("\nNumPy 数组格式:")
for row in np_array:
print(row)