我有一个大小为500x5000
的矩阵,我试图通过matplotlib将其可视化。简单地说,我有:
import matplotlib as plt
import numpy as np
mat = np.random.rand(500,5000)
plt.imshow(mat, interpolation='none')
plt.show()
问题在于我得到的图像有些“挤压”,如此:
我希望能够使图像“适合”图形,以便我可以更好地检查它。有没有办法在matplotlib中执行此操作?
感谢。
答案 0 :(得分:2)
如果您希望图片进行调整以填满可用空间,请将aspect='auto'
指定为imshow
。请注意,像素不是方形的!
例如:
import matplotlib.pyplot as plt
import numpy as np
mat = np.random.rand(500,5000)
plt.imshow(mat, interpolation='none', aspect='auto')
plt.show()
仅作比较,默认行为强制像素为方形,结果更像是:
答案 1 :(得分:1)
在当前轴上使用set_aspect
方法。在您的情况下,宽高比约为1:10,因此您可以将其设置为10以获得正方形图像:
import matplotlib.pyplot as plt
import numpy as np
mat = np.random.rand(500,5000)
plt.imshow(mat, interpolation='none')
plt.gca().set_aspect(10)
plt.show()