如何确定我的imshow大小?

时间:2016-09-01 14:17:00

标签: python matplotlib

我使用以下代码生成了2d强度矩阵:

H, x_e, y_e = np.histogram2d(test_y, test_x, bins=(y_e, x_e))

x_e和y_e的值为:

x_e
array([ 0.05      ,  0.0530303 ,  0.05606061,  0.05909091,  0.06212121,
        0.06515152,  0.06818182,  0.07121212,  0.07424242,  0.07727273,
        0.08030303,  0.08333333,  0.08636364,  0.08939394,  0.09242424,
        0.09545455,  0.09848485,  0.10151515,  0.10454545,  0.10757576,
        0.11060606,  0.11363636,  0.11666667,  0.11969697,  0.12272727,
        0.12575758,  0.12878788,  0.13181818,  0.13484848,  0.13787879,
        0.14090909,  0.14393939,  0.1469697 ,  0.15      ,  0.1530303 ,
        0.15606061,  0.15909091,  0.16212121,  0.16515152,  0.16818182,
        0.17121212,  0.17424242,  0.17727273,  0.18030303,  0.18333333,
        0.18636364,  0.18939394,  0.19242424,  0.19545455,  0.19848485,
        0.20151515,  0.20454545,  0.20757576,  0.21060606,  0.21363636,
        0.21666667,  0.21969697,  0.22272727,  0.22575758,  0.22878788,
        0.23181818,  0.23484848,  0.23787879,  0.24090909,  0.24393939,
        0.2469697 ,  0.25      ,  0.2530303 ,  0.25606061,  0.25909091,
        0.26212121,  0.26515152,  0.26818182,  0.27121212,  0.27424242,
        0.27727273,  0.28030303,  0.28333333,  0.28636364,  0.28939394,
        0.29242424,  0.29545455,  0.29848485,  0.30151515,  0.30454545,
        0.30757576,  0.31060606,  0.31363636,  0.31666667,  0.31969697,
        0.32272727,  0.32575758,  0.32878788,  0.33181818,  0.33484848,
        0.33787879,  0.34090909,  0.34393939,  0.3469697 ,  0.35      ])
y_e
array([ 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9.])

我似乎无法通过以下代码实现对绘制输出的形状的控制:

fig = plt.figure(figsize=(10, 10))
ax = fig.add_subplot(111)
ax.set_title(feature_of_interest)
im = plt.imshow(H, interpolation='nearest', origin='low',
                extent=[y_e[0], y_e[-1], x_e[0], x_e[-1]])

这给了我一个非常压扁的输出,我看不到任何东西:

enter image description here

如何调整参数以获得更好的宽高比?

这是我到目前为止所尝试的内容:

  • 使用extent参数。这会改变形状,但不能以可预测的方式改变。这也使轴标签不正确。
  • 更改figsize参数。这似乎没有任何影响。

1 个答案:

答案 0 :(得分:4)

您可以设置axes directly的宽高比。这与图形大小无关。这是一个例子:

import numpy as np
from matplotlib import pyplot as plt

data = np.random.rand(5, 100)

fig = plt.figure()
ax = fig.add_subplot(111)

ax.imshow(data, interpolation='nearest')
ax.set_aspect(5)

plt.show()

enter image description here