Python plot使用matplotlib的大矩阵

emi*_*ily 9 python matplotlib matrix out-of-memory large-data

我试图绘制一个2000列和200000行的矩阵.当矩阵很小时,我可以测试绘图和测试输出矩阵图

matshow(my_matrix)
show()
Run Code Online (Sandbox Code Playgroud)

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

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

emi*_*ily 1

我最终结合了@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)
Run Code Online (Sandbox Code Playgroud)

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