使用 Python 生成 n*n 数表图片

该脚本使用 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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值