Python plot使用matplotlib

时间:2015-07-03 23:09:45

标签: python matplotlib matrix out-of-memory large-data

我正在尝试绘制一个包含2000列和200000行的矩阵。我可以测试绘图并使用

在矩阵较小时测试导出矩阵图
matshow(my_matrix)
show()

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

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

1 个答案:

答案 0 :(得分: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)

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