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


96

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

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

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


1
저와 같은 다른 사람들이이 게시물에 착수하는 데 어려움을 겪는 경우를 대비하여이 주석을 추가하면됩니다. 문제는 x와 y 데이터가 크기가 다른 경우에 (가장 눈에 띄게) 발생합니다. @bmu의 대답은 그것을 수정합니다
mwarrior

답변:


142

당신이 포기하지 않는 경우 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


가로 세로 비율을 정의하는 것 외에도 컬러 타일의 크기를 얻을 (정의) 할 수 있습니까?
Alexander Cska

36

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

from matplotlib import pyplot as plt

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

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


4
명확하게하기 위해서는 수 있어야 plt.figure(figsize = (x_new, y_new))하고 imgshow () 지금 ioimage을 가져와야의 SciPy의 imageshow ()가 곧 중단 될 예정입니다 때문에
애자 콩

1
@AgileBean 해당 정보로이 게시물을 편집
하거나이

2

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

axes([0.08, 0.08, 0.94-0.08, 0.94-0.08]) #[left, bottom, width, height]
axis('scaled')`

이것이 캔버스의 크기를 결정한다고 생각합니다.


1

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.