Python 使用 matplotlib 绘制大矩阵

Python plot Large matrix using matplotlib

我正在尝试绘制一个包含 2000 列和 200000 行的矩阵。当矩阵很小时,我可以测试绘图并测试导出矩阵图

matshow(my_matrix)
show()

但是,当my_matrix中添加更多行时,图形变得非常窄,因为行数远多于列数,因此在放大时会失去精度。我可以使矩阵图形可滚动吗?如果不是,我怎样才能在不损失精度的情况下可视化这样的矩阵?

我也尝试调用 savefig('filename', dpi=300) 来保存图像而不损失太多精度,但是当矩阵很大时它会抛出 MemoryError。非常感谢!

我最终结合了@tcaswell 和@lesnikow 的建议。

获取当前轴以便正确设置自动纵横比,我还将矩阵拆分为更小的矩阵:

    import matplotlib.pylab as plt

    for j in range(lower_bound_on_rows, upper_bound_on_rows): nums.append(j)
    partial_matrix = my_matrix[nums, :] 

    plt.matshow(partial_matrix, fignum=100)
    plt.gca().set_aspect('auto')
    plt.savefig('filename.png', dpi=600)

我的矩阵在垂直方向上很长,所以我按行切片并保留较小矩阵中的所有列。如果您的矩阵在水平方向上很长,请像这样翻转索引 my_matrix[:, nums]