Matplotlib-차트 객체의 plt.show ()

Aug 28 2020

여기에 정말 간단한 예가 있습니다. 함수에서 반환 된 도끼 개체에서 플롯을 만들고 있습니다.

import matplotlib.pyplot as plt

x = ['a', 'b', 'c']
y = [1, 2, 3]

def make_plot():

    fig, ax = plt.subplots()
    ax.set_title('test bar chart')

    return ax


chart = make_plot()
chart.bar(x, y)

plt.show()               #why does this show the chart?

내 질문은 끝에 plt.show ()에 관한 것입니다. 분명히 이것은 차트의 출력을 보여줍니다. 그런데 왜? 나에게 그것은 plt.show ()가 어떤 것에 묶여있는 것처럼 보이지 않습니다. chart모든 매개 변수와 그 밖의 차트를 포함하는 내 개체가 있습니다. 그러나 plt.show ()는 이것과 상호 작용하는 것을 어떻게 압니까? 이 같은이 더 직관적으로 보일 것 chart.show()같은 chart클래스의 인스턴스입니다.

답변

2 Keon Aug 28 2020 at 01:42

좋은 질문! chart호출 할 때 생성되는 축입니다 plt.subplots(). Pyplot은 "상태 저장"API라고하는 것입니다. plt. * 함수를 호출하면 pyplot의 내부 상태가 변경되어 향후 호출에 영향을 미칠 수 있습니다. 를 호출하면 plt.subplots()내부에 새로 생성 된 서브 플롯 축이있는 새로 생성 된 Figure가 있음을 알게됩니다.

마찬가지로를 호출 plt.plot()하면 가장 최근 축이 무엇인지에 대한 기록이 저장되고 해당 플롯에 데이터가 표시됩니다.

pyplot 소스 코드를 살펴보면manager 현재 플롯을 저장하는 데 사용 하는 전역 변수가 manager있고 플롯을 만들 때 업데이트하는 방법 을 확인할 수 있습니다.

또한 Figure.show(). pyplot을 해결하려면 다음과 같이 보입니다.