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

3 投票
1 回答
6252 浏览
提问于 2025-04-18 18:14

我有一段代码,可以生成一个图表,像下面的例子一样。我想把输出的图表强制设置为一个 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。

想了解更多信息,可以看看 这个回答

撰写回答