[python] matplotlib 플롯에서 xlabel이 잘리는 이유는 무엇입니까?

나는 matplotlib매우 “높은”xlabel이있는 위치를 사용하여 데이터 세트를 플로팅하고있다 (이것은 TeX에서 렌더링 된 공식으로 분수를 포함하고 따라서 텍스트의 두 줄에 해당하는 높이를 가짐).

어쨌든 그림을 그릴 때 수식의 맨 아래는 항상 잘립니다. 그림 크기를 변경해도 도움이되지 않는 것 같습니다 .x 축을 위로 이동하여 xlabel을위한 공간을 만드는 방법을 알 수 없었습니다. 그와 같은 것이 합리적인 임시 해결책 일 것이지만, 좋은 점은 matplotlib이 레이블이 잘렸다는 것을 자동으로 인식하고 그에 따라 크기를 조정하는 방법을 갖는 것입니다.

다음은 내가 의미하는 바의 예입니다.

import matplotlib.pyplot as plt

plt.figure()
plt.ylabel(r'$\ln\left(\frac{x_a-x_b}{x_a-x_c}\right)$')
plt.xlabel(r'$\ln\left(\frac{x_a-x_d}{x_a-x_e}\right)$')
plt.show()

전체 ylabel을 볼 수 있지만 xlabel은 맨 아래에서 잘립니다.

이것이 기계 특정 문제의 경우, matplotlib 1.0.0을 사용하여 OSX 10.6.8에서 이것을 실행하고 있습니다



답변

사용하다:

import matplotlib.pyplot as plt

plt.gcf().subplots_adjust(bottom=0.15)

라벨을위한 공간을 만들기 위해.

편집하다:

내가 대답을 한 이후로 기능 matplotlib을 추가했습니다 tight_layout(). 그래서 나는 그것을 사용하는 것이 좋습니다.

plt.tight_layout()

xlabel을위한 공간을 만들어야합니다.


답변

쉬운 옵션은 플롯 크기를 자동으로 조정하도록 matplotlib를 구성하는 것입니다. 그것은 나를 위해 완벽하게 작동하며 왜 기본적으로 활성화되어 있지 않은지 잘 모르겠습니다.

방법 1

matplotlibrc 파일에서 이것을 설정하십시오.

figure.autolayout : True

matplotlibrc 파일 사용자 정의에 대한 자세한 정보는 여기를 참조하십시오. http://matplotlib.org/users/customizing.html

방법 2

런타임 중에 rcParams를 다음과 같이 업데이트하십시오.

from matplotlib import rcParams
rcParams.update({'figure.autolayout': True})

이 방법을 사용하면 코드가 다르게 구성된 시스템에서 동일한 그래프를 생성 할 수 있다는 이점이 있습니다.


답변

파일에 파일을 저장하려면 bbox_inches="tight"인수를 사용하여 파일을 해결하십시오 .

plt.savefig('myfile.png', bbox_inches = "tight")


답변

퍼팅 plot.tight_layout()직전, 그래프의 모든 변경 후 show()또는 savefig()문제를 해결합니다.


답변

plt.autoscale() 나를 위해 일했다.


답변

$HOME/.matplotlib/matplotlib_rc다음과 같이 사용자 정의 패딩을 기본값으로 설정할 수도 있습니다. 아래 예제에서 아래쪽과 왼쪽 상자를 모두 수정했습니다.

# The figure subplot parameters.  All dimensions are a fraction of the
# figure width or height
figure.subplot.left  : 0.1 #left side of the subplots of the figure
#figure.subplot.right : 0.9 
figure.subplot.bottom : 0.15
...


답변