【问题标题】:matplotlib imshow display ratio fix to squarematplotlib imshow 显示比例修复为正方形
【发布时间】:2014-08-23 05:43:45
【问题描述】:

我的代码可以根据以下示例生成绘图。如果可能,我想强制输出图为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()

【问题讨论】:

    标签: python matplotlib


    【解决方案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:看看clim argument,例如pl.imshow(..., clim=[-18,-2])。这样您就可以限制颜色范围。但它应该与数据相对应,因此您可以相应地对其进行缩放:pl.imshow(array * (-18), ..., clim=[-18,-2])
    • 好的,谢谢。我基本上有一个代表不同数量级的数据集。从10E-18zero,增量为10E-2。我是matplotlib 的菜鸟,所以我很感激!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多