[python] imshow () 그림이 너무 작습니다.

Matlab의 imagesc ()와 비슷하기 때문에 imshow ()를 사용하여 numpy 배열을 시각화하려고합니다.

imshow(random.rand(8, 90), interpolation='nearest')

결과 수치는 회색 창의 중앙에서 매우 작으며 대부분의 공간이 비어 있습니다. 그림을 더 크게 만들기 위해 매개 변수를 어떻게 설정할 수 있습니까? 나는 figsize = (xx, xx) 시도했지만 내가 원하는 것이 아닙니다. 감사!



답변

당신이 포기하지 않는 경우 aspect에 인수를 imshow, 그것의 값을 사용 image.aspect하여에서 matplotlibrc. 새에서이 값의 기본값 matplotlibrcequal입니다. 따라서 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


답변

이상합니다. 확실히 저에게 효과적입니다.

from matplotlib import pyplot as plt

plt.figure(figsize = (20,2))
plt.imshow(random.rand(8, 90), interpolation='nearest')

“MacOSX”백엔드 인 btw를 사용하고 있습니다.


답변

나도 파이썬을 처음 사용합니다. 여기에 당신이 원하는 것을 할 것 같은 것이 있습니다.

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).


답변