我正在尝试使用imshow()来可视化一个numpy数组,因为它类似于Matlab中的imagesc()。
imshow(random.rand(8, 90), interpolation='nearest')得到的图形在灰色窗口的中心非常小,而大部分空间是空闲的。如何设置参数以使图形更大?我尝试过figsize=(xx,xx),但它不是我想要的。谢谢!

发布于 2012-05-11 14:05:24
如果你不给imshow一个aspect参数,它将在你的matplotlibrc中使用image.aspect的值。新matplotlibrc中此值的默认值为equal。因此,imshow将以相等的纵横比绘制您的数组。
如果不需要等宽比,可以将aspect设置为auto
imshow(random.rand(8, 90), interpolation='nearest', aspect='auto')它给出了下面的图

如果你想要相同的宽高比,你必须根据宽高比调整你的figsize
fig, ax = subplots(figsize=(18, 2))
ax.imshow(random.rand(8, 90), interpolation='nearest')
tight_layout()这为您提供了:

发布于 2012-05-11 04:17:24
这很奇怪,它对我来说绝对是有效的:
from matplotlib import pyplot as plt
plt.figure(figsize = (20,2))
plt.imshow(random.rand(8, 90), interpolation='nearest')我正在使用"MacOSX“后端,顺便说一下。
发布于 2020-05-03 18:31:11
更新2020
应@baxxx的要求,这里是一个更新,因为random.rand同时被弃用。
这适用于matplotlip 3.2.1:
from matplotlib import pyplot as plt
import random
import numpy as np
random = np.random.random ([8,90])
plt.figure(figsize = (20,2))
plt.imshow(random, interpolation='nearest')该图显示:

要更改随机数,可以尝试使用均值( np.random.normal(0,1,(8,90)) )(此处均值= 0,标准差= 1)。
https://stackoverflow.com/questions/10540929
复制相似问题