Я пытаюсь визуализировать массив numpy с помощью imshow (), поскольку он похож на imagesc () в Matlab.
imshow(random.rand(8, 90), interpolation='nearest')
В результате фигура очень маленькая в центре серого окна, в то время как большая часть пространства остается незанятой. Как настроить параметры, чтобы фигура была больше? Я пробовал figsize = (xx, xx), и это не то, что мне нужно. Благодарность!
python
numpy
matplotlib
Ruofeng
источник
источник
Ответы:
Если вы не укажете
aspect
аргументimshow
, он будет использовать значениеimage.aspect
в вашемmatplotlibrc
. Значение по умолчанию для этого значения в новом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()
что дает вам:
источник
Странно, у меня точно работает:
from matplotlib import pyplot as plt plt.figure(figsize = (20,2)) plt.imshow(random.rand(8, 90), interpolation='nearest')
Между прочим, я использую серверную часть MacOSX.
источник
plt.figure(figsize = (x_new, y_new))
и для imgshow () вы должны теперь импортировать ioimage, потому что SciPy imageshow () скоро будет устаревшимЯ тоже новичок в питоне. Вот что-то вроде того, что будет делать то, что вы хотите
axes([0.08, 0.08, 0.94-0.08, 0.94-0.08]) #[left, bottom, width, height] axis('scaled')`
Я считаю, что это решает размер холста.
источник
Обновление 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).источник