Matplotlib : 현재 그림을 설정하는 방법은 무엇입니까?


83

이것은 간단한 질문이지만 지금은 이해할 수 없습니다. matplotlib를 사용하여 2 개의 그림을 표시 한 다음 대화식으로 사용하고 싶습니다. 다음을 사용하여 그림을 만듭니다.

import matplotlib
import pylab as pl

f1 = pl.figure()
f2 = pl.figure()

MATLAB과 유사한 pyplot 인터페이스를 사용하여 두 그림을 모두 플로팅하고 그릴 수 있습니다. 와

current_figure = pl.gcf()

클릭 한 그림에 따라 pyplot 인터페이스의 현재 활성 그림을 결정할 수 있습니다. 이제 pyplot 인터페이스를 사용하여 첫 번째 그림에 무언가를 그리려고하지만 현재 그림은 둘 중 하나 일 수 있습니다. 그래서 뭔가가 있습니까

pl.set_current_figure(figure)

또는 해결 방법? (객체 지향 인터페이스를 사용할 수 있지만 대화 형 작업의 경우 plot (x, y)와 같은 명령을 사용하는 것이 훨씬 더 좋습니다)

답변:


96

다음 f1을 사용하여 그림 을 새 현재 그림으로 간단히 설정할 수 있습니다 .

pl.figure(f1.number)

또 다른 옵션은 그림에 이름 (또는 숫자)을 부여하는 것입니다. 이렇게하면 코드를 더 쉽게 읽을 수 있습니다.

pl.figure("Share values")
# ... some plots ...
pl.figure("Profits")
# ... some plots ...

pl.figure("Share values")  # Selects the first figure again

사실, 그림 "숫자"는 문자열이 될 수 있으며, 이는 단순한 숫자보다 더 분명합니다.

추신 :에 해당하는 플롯은 pylab.figure()입니다 matplotlib.pyplot.figure().


2
pylab 대신 matplotlib.figure.Figure를 사용하여 이것을 수행하는 좋은 방법이 있습니까 ??
tylerthemiler 2011

@tylerthemiler : 예,하지만 그건 matplotlib.pyplot.figure().
Eric O Lebigot 2011

축에 대해 동일한 작업을 수행하려면 pylab.sca(my_axis)( "현재 축 설정")을 사용하십시오.
PiHalbe 2013-06-26

14

각 그림에 숫자를 부여하십시오.

f1 = pl.figure(1)
f2 = pl.figure(2)
# use f2
pl.figure(1) # make f1 active again
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.