Рисунок imshow() слишком мал
Я пытаюсь визуализировать массив numpy с помощью imshow(), поскольку он похож на imagesc() в Matlab.
imshow(random.rand(8, 90), interpolation='nearest')
Полученная фигура очень маленькая в центре серого окна, в то время как большая часть пространства не занята. Как настроить параметры для увеличения фигуры? Я попробовал figsize = (xx, xx), и это не то, что я хочу. Спасибо!
![]()
Ответы
Ответ 1
Если вы не укажете аргумент aspect
для imshow
, он будет использовать значение для image.aspect
в вашем matplotlibrc
. Значение по умолчанию для этого значения в новом matplotlibrc
равно equal
.
Таким образом, imshow
построит массив с равным соотношением сторон.
Если вам не нужен одинаковый аспект, вы можете установить aspect
в auto
imshow(random.rand(8, 90), interpolation='nearest', aspect='auto')
который дает следующий рисунок
![imshow-auto]()
Если вы хотите равное соотношение сторон, вам нужно адаптировать ваш figsize
в соответствии с аспектом
fig, ax = subplots(figsize=(18, 2))
ax.imshow(random.rand(8, 90), interpolation='nearest')
tight_layout()
который дает вам:
![imshow-equal]()
Ответ 2
Это странно, это определенно работает для меня:
from matplotlib import pyplot as plt
plt.figure(figsize = (20,2))
plt.imshow(random.rand(8, 90), interpolation='nearest')
Я использую бэкэнд "MacOSX", кстати.
Ответ 3
Я тоже новичок в python. Вот что-то похожее на то, что вы хотите сделать
axes([0.08, 0.08, 0.94-0.08, 0.94-0.08]) #[left, bottom, width, height]
axis('scaled')`
Я считаю, что это решает размер холста.