Matplotlib imshow显示比例调整为正方形

3

我有一段代码,可以根据下面的示例生成图表。如果可能的话,我想强制输出的图表是一个 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()
1个回答

1
你可以按照以下方式定义轴的纵横比例:
pl.axes().set_aspect(0.5)

因素0.5补偿了您数据的宽高比128:64 = 2:1。
如需进一步了解,请参阅this answer

你是否也知道如何设置colorbar()的刻度,使其为[-18, -14, -12, -10, -8, -6, -4, -2],其中-18位于底部,-2位于顶部。此外,-18刻度对应最接近零的值,而-2刻度对应最接近1的值。 - Matt
1
@Matt:看一下clim参数,例如pl.imshow(..., clim=[-18,-2])。这样你就可以限制颜色范围。但它应该对应于数据,所以你可能需要相应地进行缩放:pl.imshow(array * (-18), ..., clim=[-18,-2]) - Falko
好的,谢谢。我有一个数据集,它代表了不同数量级的订单。从 10E-18,每次增加 10E-2。我对 matplotlib 完全是个新手,所以非常感谢! - Matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接