의 차이점이 무엇이 add_axes 및 add_subplot?

이전답변그것은 나에게 추천 사용하는add_subplot대신에add_axes을 보여 축이 올바르게,그러나 찾 문서 나는't 을 이해하면 왜 나를 사용해야 중 하나 이러한 기능입니다.

할 수 있는 사람이 둘 사이의 차이점에 대해 설명합?

해결책

일반적인 근거

모두,[add_axes](https://matplotlib.org/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure.add_axes 고)add_subplot추가 축을 그림입니다. 그들은 둘 다 반환(의 서브 클래스 a)matplotlib.축이 있습니다.축개체입니다.

그러나 메커니즘에 사용되는 추가 축을 실질적으로 다릅니다.

add_axes

는 호출의 서명[add_axes](https://matplotlib.org/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure.add_axes 는)add_axes(rect),는rect목록[x0,y0,폭,높이]나타내는 왼쪽 아래의 새로운 도끼에서 그 좌표(x0,y0)와의 너비와 높이입니다. 그래서 축 positionned 에서 절대에 좌표를 캔버스에 있습니다. E.g.

fig = plt.figure()
ax = fig.add_axes([0,0,1,1])

장소는 그림에서 캔버스에 정확히 큰으로 캔버스에 자체입니다.

add_subplot

는 호출의 서명[add_subplot](https://matplotlib.org/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure.add_subplot 가)직접 제공하는 옵션을 축에서 미리 정의한 위치. 그것은 오히려할 수 있습을 지정하는 축이 있어야에 위치한에 따라 줄거리다. 평소와는 가장 쉬운 방법이를 지정하는 위치입니다 3 정수 표기

fig = plt.figure()
ax = fig.add_subplot(231)

이 예제에서는 새로운 축성에서 첫 번째 위치(1)에서의 격자 2 행 3 열에 있습니다. 을 생산하는 단 하나의 축은,add_subplot(111)사용되는 것(첫 번째 음모에 1 1 줄거리 그리드). (새로운 matplotlib versions,`add_subplot()인수없이뿐만 아니라 수 있습니다.)

이 방법의 장점은 matplotlib 처리의 정확한 위치. 기본적으로add_subplot(111)을 생성한 축에 배치[0.125,0.11,0.775,0.77] 또는 이와 유사한 이미 잎의 주위에 충분한 공간 축에 대한 제목과(체크)레이블이 있습니다. 그러나,이 위치도 변경에 따라 다른 요소에 줄거리,타이틀,설정,등등. 그것를 사용하여 조정할 수도 있습pyplot.subplots_adjust(...)또는pyplot.tight_layout().

대부분의 경우,add_subplot 될 수 있을 것이 선호하는 방법을 만드는 축 구획에 대해 캔버스에. 경우에만 정확한 위치는 사안,add_axes`유용할 수 있습니다.

예제

import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (5,3)

fig = plt.figure()
fig.add_subplot(241)
fig.add_subplot(242)
ax = fig.add_subplot(223)
ax.set_title("subplots")

fig.add_axes([0.77,.3,.2,.6])
ax2 =fig.add_axes([0.67,.5,.2,.3])
fig.add_axes([0.6,.1,.35,.3])
ax2.set_title("random axes")

plt.tight_layout()
plt.show()

대체

를 구하는 가장 쉬운 방법은 하나 이상의 줄거리와 함께 그들의 처리는plt.줄거리(). 한 축 사용

fig, ax = plt.subplots()

는 경우 또는,더 줄거리가 필요,

fig, axes = plt.subplots(nrows=3, ncols=4)

초기 질문

에서[초기 question](https://stackoverflow.com/questions/43283643/change-range-withouth-scaling-in-matplot?noredirect=1&lq=1 는)축되었을 사용하여 배치fig.add_axes([0,0,1,1]),그런 그것은 앉아 단단한 그림이다. 이 방법의 단점은 물론 틱,ticklabels,축 라벨 및 제목이 차단됩니다. 그러므로 내가에 제안된 의견 중 하나 대답을 사용하fig.add_subplot이 자동으로 허용에 대한 충분한 공간을 위한 이러한 요소,그리고,이 충분하지 않는 경우,조정될 수 있습니다 사용하는pyplot.subplots_adjust(...)또는pyplot.tight_layout().

해설 (0)