문제

matplotlib/pylab 이미지에 포함 된 플롯을 올바르게 맞출 수 있도록 그림을 자동으로 조정하는 방법이 있습니까?

사용 된 데이터에 따라 종횡비가 다른 Heatmap (Sub) 플롯을 만들고 있습니다.

종횡비를 계산하고 수동으로 설정할 수 있다는 것을 알고 있지만 더 쉬운 방법이 있습니까?

도움이 되었습니까?

해결책

사용 bbox_inches = 'titg'

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

X = 10*np.random.rand(5,3)

fig = plt.figure(figsize=(15,5),facecolor='w') 
ax = fig.add_subplot(111)
ax.imshow(X, cmap=cm.jet)

plt.savefig("image.png",bbox_inches='tight',dpi=100)

... 이미지를 보여주지 않고 이미지를 저장할 때만 작동합니다.

다른 팁

imshow를 호출 할 때 측면 = 'auto'만 사용합니다.

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

X = 10*np.random.rand(5,3)
plt.imshow(X, aspect='auto')

그것은 단지 보여주고 저축하지 않더라도 작동합니다.

이 작업을 수행하는 또 다른 방법

import matplotlib.pyplot as plt
fig,(ax) = plt.subplots(figsize=(8,4), ncols=1)
data = [0,1,2,3,4]
ax.plot(data)
fig.tight_layout()
fig.show()

이미지의 크기 나 플롯 내에서 볼 수있는 영역을 변경한다는 의미입니까?

그림의 크기는 설정할 수 있습니다 그림 .set_figsize_inches. 또한 Scipy Cookbook 그림 당 여러 이미지에 대한 섹션이 포함 된 이미지 크기 변경에 대한 항목이 있습니다.

또한 이것을 살펴보십시오 의문.

Axis ( 'Scaled')를 사용해 볼 수 있습니다.

import matplotlib.pyplot as plt
import numpy

#some dummy images
img1 = numpy.array([[.1,.2],[.3,.4]]) 
img2 = numpy.array([[.1,.2],[.3,.4]])

fig,ax = plt.subplots()
ax.imshow(img1,extent=[0,1,0,1])
ax.imshow(img2,extent=[2,3,0,1])
ax.axis('scaled') #this line fits your images to screen 
plt.show()

사용할 수도 있습니다 Ax.Autoscale 도끼 객체와 함께

ax.autoscale(enable=True) 
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top