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.非常感谢!
我最终结合了@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]
| 归档时间: |
|
| 查看次数: |
2571 次 |
| 最近记录: |