복붙노트

[PYTHON] matplotlib 줄거리에서 내 xlabel이 왜 끊깁니까?

PYTHON

matplotlib 줄거리에서 내 xlabel이 왜 끊깁니까?

matplotlib을 사용하여 데이터 세트를 플로팅하는 중입니다. xlabel은 상당히 크고 (분수를 포함하는 TeX에서 렌더링 된 수식이므로 두 줄의 텍스트에 해당하는 높이를가집니다).

어쨌든 수식을 그릴 때 수식의 맨 아래가 항상 잘립니다. 그림 크기를 변경해도 도움이되지 않는 것 같습니다. xlabel의 공간을 확보하기 위해 x 축을 "위로"이동하는 방법을 알아 내지 못했습니다. 그런 식으로 적당한 임시 해결책이 될 수 있지만, 좋은 점은 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에서 실행합니다.

해결법

  1. ==============================

    1.용도:

    용도:

    import matplotlib.pyplot as plt
    
    plt.gcf().subplots_adjust(bottom=0.15)
    

    라벨을 넣을 자리를 마련하는 것.

    편집하다:

    나는 답을 주었기 때문에, matplotlib은 tight_layout () 함수를 추가했다. 그래서 그것을 사용하는 것이 좋습니다 :

    plt.tight_layout()
    

    xlabel을위한 자리를 마련해야합니다.

  2. ==============================

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

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

    방법 1

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

    figure.autolayout : True
    

    matplotlibrc 파일 사용자 정의에 대한 자세한 내용은 다음을 참조하십시오. http://matplotlib.org/users/customizing.html

    방법 2

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

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

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

  3. ==============================

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

    $ 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
    ...
    
  4. ==============================

    4.그래프의 모든 변경 후에 plot.tight_layout ()을 show () 또는 savefig () 직전에 놓으면 문제가 해결됩니다.

    그래프의 모든 변경 후에 plot.tight_layout ()을 show () 또는 savefig () 직전에 놓으면 문제가 해결됩니다.

  5. ==============================

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

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

    plt.savefig('myfile.png', bbox_inches = "tight")
    
  6. from https://stackoverflow.com/questions/6774086/why-is-my-xlabel-cut-off-in-my-matplotlib-plot by cc-by-sa and MIT license