[PYTHON] 제목과 xlabels가 겹치지 않도록 Matplotlib subplots_adjust hspace?
PYTHON제목과 xlabels가 겹치지 않도록 Matplotlib subplots_adjust hspace?
예를 들어, matplotlib에서 3 줄의 subplot을 사용하면 한 줄의 xlabels가 다음 줄의 제목과 겹칠 수 있습니다. 하나는 성가신 pl.subplots_adjust (hspace)로 피들해야합니다.
겹치기를 방지하는 hspace를위한 조리법이 있습니까?
""" matplotlib xlabels overlap titles ? """
import sys
import numpy as np
import pylab as pl
nrow = 3
hspace = .4 # of plot height, titles and xlabels both fall within this ??
exec "\n".join( sys.argv[1:] ) # nrow= ...
y = np.arange(10)
pl.subplots_adjust( hspace=hspace )
for jrow in range( 1, nrow+1 ):
pl.subplot( nrow, 1, jrow )
pl.plot( y**jrow )
pl.title( 5 * ("title %d " % jrow) )
pl.xlabel( 5 * ("xlabel %d " % jrow) )
pl.show()
내 버전 :
(많은 추가 점에 대해서, TCL / Tk 책의 17 장 "포장 자"의 줄에 따라 matplotlib의 포장 자 / 뚜껑이 어떻게 작동하는지 개략적으로 설명 할 수 있습니까?)
해결법
-
==============================
1.이 작업은 매우 까다 롭지 만 MatPlotLib FAQ에는 여기에 몇 가지 정보가 있습니다. 그것은 다소 번거롭고 개별 요소 (ticklabels)가 차지하는 공간을 알아 내야합니다.
이 작업은 매우 까다 롭지 만 MatPlotLib FAQ에는 여기에 몇 가지 정보가 있습니다. 그것은 다소 번거롭고 개별 요소 (ticklabels)가 차지하는 공간을 알아 내야합니다.
최신 정보: 이 페이지에는 tight_layout () 함수가 자동으로 간격을 수정하려고 시도하는 가장 쉬운 방법이라고 나와 있습니다.
그렇지 않으면 다양한 요소 (예 : 레이블)의 크기를 가져와 축 요소의 간격 / 위치를 수정할 수있는 방법을 보여줍니다. 다음은 위의 FAQ 페이지의 예제로 매우 넓은 y 축 레이블의 너비를 결정하고 이에 따라 축 너비를 조정합니다.
import matplotlib.pyplot as plt import matplotlib.transforms as mtransforms fig = plt.figure() ax = fig.add_subplot(111) ax.plot(range(10)) ax.set_yticks((2,5,7)) labels = ax.set_yticklabels(('really, really, really', 'long', 'labels')) def on_draw(event): bboxes = [] for label in labels: bbox = label.get_window_extent() # the figure transform goes from relative coords->pixels and we # want the inverse of that bboxi = bbox.inverse_transformed(fig.transFigure) bboxes.append(bboxi) # this is the bbox that bounds all the bboxes, again in relative # figure coords bbox = mtransforms.Bbox.union(bboxes) if fig.subplotpars.left < bbox.width: # we need to move it over fig.subplots_adjust(left=1.1*bbox.width) # pad a little fig.canvas.draw() return False fig.canvas.mpl_connect('draw_event', on_draw) plt.show()
-
==============================
2.plt.subplots_adjust를 사용하여 하위 플롯 간의 간격을 변경할 수 있습니다. Link
plt.subplots_adjust를 사용하여 하위 플롯 간의 간격을 변경할 수 있습니다. Link
subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None) left = 0.125 # the left side of the subplots of the figure right = 0.9 # the right side of the subplots of the figure bottom = 0.1 # the bottom of the subplots of the figure top = 0.9 # the top of the subplots of the figure wspace = 0.2 # the amount of width reserved for blank space between subplots hspace = 0.2 # the amount of height reserved for white space between subplots
-
==============================
3.Jose에 의해 게시 된 링크가 업데이트되었고 pylab에는 자동으로이를 수행하는 tight_layout () 함수가 있습니다 (matplotlib 버전 1.1.0).
Jose에 의해 게시 된 링크가 업데이트되었고 pylab에는 자동으로이를 수행하는 tight_layout () 함수가 있습니다 (matplotlib 버전 1.1.0).
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.tight_layout
http://matplotlib.org/users/tight_layout_guide.html#plotting-guide-tight-layout
from https://stackoverflow.com/questions/2418125/matplotlib-subplots-adjust-hspace-so-titles-and-xlabels-dont-overlap by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 표준 라이브러리를 사용하여 잘못된 형식의 HTML을 파이썬에서 구문 분석하는 방법 (0) | 2018.10.19 |
---|---|
[PYTHON] pymongo.errors.CursorNotFound : 서버에서 커서 ID '...'이 유효하지 않습니다. (0) | 2018.10.19 |
[PYTHON] matplotlib에서 숫자 목록 얻기 (0) | 2018.10.19 |
[PYTHON] 장고 - 여러 파일의 우편 번호 만들기 및 다운로드 가능 [복제] (0) | 2018.10.19 |
[PYTHON] 파이썬에서리스트 - 이해력 계산을 병렬화하는 방법? (0) | 2018.10.19 |