Ruo*_*eng 80 python numpy matplotlib
我正在尝试使用imshow()来显示一个numpy数组,因为它类似于Matlab中的imagesc().
imshow(random.rand(8, 90), interpolation='nearest')
Run Code Online (Sandbox Code Playgroud)
结果图在灰色窗口的中心非常小,而大部分空间都没有被占用.如何设置参数以使图形更大?我试过figsize =(xx,xx),这不是我想要的.谢谢!

bmu*_*bmu 115
如果您不给出aspect参数imshow,它将使用您的值image.aspect中的值matplotlibrc.在一个新的该值的默认值matplotlibrc是equal.因此,imshow将以相同的宽高比绘制阵列.
如果您不需要相同的方面,您可以设置aspect为auto
imshow(random.rand(8, 90), interpolation='nearest', aspect='auto')
Run Code Online (Sandbox Code Playgroud)
这给出了下图

如果你想要相同的宽高比,你必须figsize根据方面进行调整
fig, ax = subplots(figsize=(18, 2))
ax.imshow(random.rand(8, 90), interpolation='nearest')
tight_layout()
Run Code Online (Sandbox Code Playgroud)
这给你:

Nik*_*las 21
这很奇怪,它绝对适合我:
from matplotlib import pyplot as plt
plt.figure(figsize = (20,2))
plt.imshow(random.rand(8, 90), interpolation='nearest')
Run Code Online (Sandbox Code Playgroud)
我正在使用"MacOSX"后端,顺便说一下.
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')
Run Code Online (Sandbox Code Playgroud)
这情节:
要更改随机数,您可以尝试使用np.random.normal(0,1,(8,90))(此处均值 = 0,标准差 = 1)。