누군가가 정확히 무엇을 사용하는지 설명해 줄 수 %matplotlib inline
있습니까?
누군가가 정확히 무엇을 사용하는지 설명해 줄 수 %matplotlib inline
있습니까?
답변:
%matplotlib
IPython 의 마술 함수 입니다. 편의를 위해 읽을 수 있도록 관련 문서를 여기에 인용하겠습니다.
IPython에는 명령 줄 스타일 구문을 사용하여 호출 할 수있는 사전 정의 된 '매직 함수'가 있습니다. 라인 지향과 셀 지향의 두 종류의 마법이 있습니다. 줄 마술은 % 문자로 시작하고 OS 명령 줄 호출과 매우 유사하게 작동합니다. 줄의 나머지 부분은 인수로 괄호 나 따옴표없이 전달됩니다. 라인 매직은 결과를 반환하고 과제의 오른쪽에서 사용할 수 있습니다. 셀 매직은 이중 %%로 시작하며, 나머지 줄뿐만 아니라 별도의 인수로 그 아래 줄을 인수로받는 함수입니다.
%matplotlib inline
matplotlib의 백엔드를 '인라인'백엔드로 설정합니다 .
이 백엔드를 사용하면 플로팅 명령의 출력이 Jupyter 노트북과 같은 프런트 엔드 내에이를 생성 한 코드 셀 바로 아래에 인라인으로 표시됩니다. 결과 플롯은 노트북 문서에도 저장됩니다.
'인라인'백엔드를 사용하면 matplotlib 그래프가 코드 옆의 노트북에 포함됩니다. IPython 노트북 matplotlib 플롯을 인라인으로 만드는 방법을 읽고 코드에서 사용하는 방법에 대한 참조를 읽어보십시오.
상호 작용을 원한다면 여기에 설명 된 것처럼 nbagg 백엔드 를 %matplotlib notebook
(IPython 3.x에서) 사용할 수 있습니다 .
IPython을 실행하는 %matplotlib inline
경우 플롯 출력이 나타나 노트북에 저장됩니다.
설명서 에 따르면
이를 설정하려면 플로팅 또는 가져 오기를
matplotlib
수행 하기 전에을 실행해야합니다%matplotlib magic command
. 이것은 IPython이 다음과 정확하게 일치하도록 필요한 비하인드 설정을 수행합니다matplotlib
. 그러나 실제로 파이썬 가져 오기 명령을 실행하지는 않습니다. 즉, 네임 스페이스에 이름이 추가되지 않습니다.IPython이 제공하는 특히 흥미로운 백엔드는
inline
백엔드입니다. Jupyter Notebook 및 Jupyter QtConsole에만 사용할 수 있습니다. 다음과 같이 호출 할 수 있습니다.%matplotlib inline
이 백엔드를 사용하면 플로팅 명령의 출력이 Jupyter 노트북과 같은 프런트 엔드 내에이를 생성 한 코드 셀 바로 아래에 인라인으로 표시됩니다. 결과 플롯은 노트북 문서에도 저장됩니다.
Jupyter 노트북에 플롯을 추가하려는 경우 %matplotlib inline
표준 솔루션입니다. matplotlib
Jupyter 내에서 대화식으로 사용할 다른 마술 명령이 있습니다 .
%matplotlib
: 모든 plt
플롯 명령으로 인해 그림 창이 열리고 플롯을 업데이트하기 위해 추가 명령을 실행할 수 있습니다. 일부 변경 사항은 자동으로 그려지지 않습니다.plt.draw()
%matplotlib notebook
: 노트북에 내장 된 대화 형 플롯으로 이어지며 그림을 확대하고 크기를 조정할 수 있습니다
%matplotlib inline
: 노트북에 정적 이미지 만 그리기
IPython 5.0 및 matplotlib 2.0으로 시작하면 IPython의 특정 마법 사용을 피할 수 있으며 IPython
matplotlib.pyplot.ion()/matplotlib.pyplot.ioff()
외부에서도 작업 할 수있는 장점이 있습니다.
inline
경우 플롯은 외부 창에서 생성되며 노트북에 표시하려면 display ()를 사용해야합니다.
백엔드가 무엇인지 모르는 경우 https://matplotlib.org/tutorials/introductory/usage.html#backends를 읽을 수 있습니다.
일부 사람들은 파이썬 쉘에서 대화식으로 matplotlib를 사용하고 명령을 입력 할 때 플로팅 창이 나타납니다. 일부 사람들은 Jupyter 노트북을 실행하고 빠른 데이터 분석을 위해 인라인 플롯을 그립니다. 다른 사람들은 matplotlib를 wxpython 또는 pygtk와 같은 그래픽 사용자 인터페이스에 포함시켜 풍부한 응용 프로그램을 구축합니다. 일부 사람들은 배치 스크립트에서 matplotlib를 사용하여 수치 시뮬레이션에서 포스트 스크립트 이미지를 생성하고, 다른 사람들은 웹 응용 프로그램 서버를 실행하여 동적으로 그래프를 제공합니다. 이러한 모든 사용 사례를 지원하기 위해 matplotlib는 서로 다른 출력을 대상으로 할 수 있으며 이러한 각 기능을 백엔드라고합니다. "프론트 엔드"는 사용자가 직면 한 코드, 즉 플로팅 코드이며 "백엔드"는 그림을 만들기 위해 모든 비하인드 작업을 수행합니다.
따라서 % matplotlib inline을 입력하면 인라인 백엔드가 활성화됩니다. 이전 게시물에서 설명한 바와 같이 :
이 백엔드를 사용하면 플로팅 명령의 출력이 Jupyter 노트북과 같은 프런트 엔드 내에이를 생성 한 코드 셀 바로 아래에 인라인으로 표시됩니다. 결과 플롯은 노트북 문서에도 저장됩니다.
TL; DR
%matplotlib inline
-출력을 인라인으로 표시IPython 커널은 코드를 실행하여 플롯을 표시 할 수 있습니다. IPython 커널은 matplotlib 플로팅 라이브러리와 원활하게 작동하여이 기능을 제공하도록 설계되었습니다.
%matplotlib
IPython이 올바르게 작업하기 위해 필요한 비하인드 셋업을 수행하는 마술 명령입니다matplotlib
. 파이썬 가져 오기 명령을 실행하지 않습니다. 즉 네임 스페이스에 이름이 추가되지 않습니다.
%matplotlib
(사용 가능한 경우에만 Jupyter 노트북과 Jupyter QtConsole에 대한)
%matplotlib inline
(유효한 값 'GTK3Agg', 'GTK3Cairo', 'MacOSX', 'nbAgg', 'Qt4Agg', 'Qt4Cairo', 'Qt5Agg', 'Qt5Cairo', 'TkAgg', 'TkCairo', 'WebAgg', 'WX', 'WXAgg', 'WXCairo', 'agg', 'cairo', 'pdf', 'pgf', 'ps', 'svg', 'template'
)
%matplotlib gtk
예-GTK3Agg-GTK 3.x 캔버스로 렌더링되는 Agg (PyGObject 및 pycairo 또는 cairocffi 필요)
matplotlib 대화식 백엔드에 대한 자세한 내용 : 여기
시작
IPython 5.0
하고matplotlib 2.0
당신은 IPython의 특정 마법 사용의 사용을 피할 수matplotlib.pyplot.ion()
/matplotlib.pyplot.ioff()
뿐만 아니라 IPython 외부 작업의 장점을 가지고있다.
반드시 작성해야하는 것은 아닙니다. %matplotlib
마법 기능이 없어도 잘 작동했습니다 . Anaconda와 함께 제공되는 Sypder 컴파일러를 사용하고 있습니다.