Python matplotlib imshow显示比例固定为方形

Python matplotlib imshow显示比例固定为方形,python,matplotlib,Python,Matplotlib,我有一段代码,可以根据下面的示例生成一个绘图。如果可能,我想强制输出的绘图为128x128正方形,而不是64x128。我的数据被视为一个正方形,即使它的矩阵不显示NxN属性 多谢各位 import numpy as np import pylab as pl my_matrix = [] for x in range(128): row = [] for value in range(64): row.append( float(value) / 63 )

我有一段代码,可以根据下面的示例生成一个绘图。如果可能,我想强制输出的绘图为
128x128
正方形,而不是
64x128
。我的数据被视为一个正方形,即使它的矩阵不显示NxN属性

多谢各位

import numpy as np
import pylab as pl

my_matrix = []
for x in range(128):
    row = []
    for value in range(64):
        row.append( float(value) / 63 )
    my_matrix.append(row)

array = np.matrix(my_matrix)
pl.axes()
pl.imshow(array, interpolation='none', cmap='jet', origin='lower')
pl.colorbar(shrink=0.95)
pl.xticks(())
pl.yticks(())
pl.show()

可以按如下方式定义轴纵横比:

pl.axes().set_aspect(0.5)
系数0.5补偿数据的纵横比128:64=2:1


有关更多信息,请查阅。

您是否还知道如何设置colorbar()刻度,使[-18,-14,-12,-10,-8,-6,-4,-2],其中-18位于底部,而-2位于顶部。此外,-18个记号与最接近零的值相关,-2个记号与最接近1的值相关。@马特:查看一下,例如,
pl.imshow(…,clim=[-18,-2])
。这样可以限制颜色范围。但是它应该对应于数据,因此您可以相应地缩放它们:
pl.imshow(array*(-18),…,clim=[-18,-2])
。好的,谢谢。我基本上有一个代表不同数量级的数据集。以
10E-2
的增量从
10E-18
0
。我是
matplotlib
的不速之客,所以我很感激!