2014-11-13 3 views
7

단추 및 기타 대화 형 matplotlib 개체가 ipython 노트북에서 나타나길 원합니다. 여기리눅스에서 ipython 노트북 nbpl과 대화 형 matplotlib 실행

screenshot 내가 무슨 짓을했는지 있습니다 :

  1. http://datasciencetoolbox.org를 설치, 그것은 설치 ipython과하기 matplotlib의 버전 1.3.1와 방랑 박스입니다.

  2. matplotlib를 인라인 대화 형 플롯을 수행 할 수있는 기능이 있으므로 최신 버전으로 업그레이드해야했습니다. What's new in Matplotlib 1.4.1
    나는 그걸 얻기 위해 sudo apt-get install pkg-config
    sudo pip install matplotlib --upgrade을 실행해야했습니다.

  3. 그런 다음, 아래의 좋은 (즉, 오류가없는) 스크린 샷을 생산하기 위해, 나는 .ipython/dst-profile/ipython_notebook_config.py 파일에 가서 matplotlib.use('nbagg') 명령을 실행 할 수 IPKernelApp.pylab='inline'에 대해 선을 지워.

  4. 그런 다음 아래 스크린 샷을 만들 수있었습니다. 그러나 사태는 여전히 저조합니다. 버튼은 버튼이 아닙니다. 그것이 버튼의 이미지입니다. 그 버튼을 생생하게 만드는 방법에 대해 조언 해주십시오!

오 ... 그리고 도움이 될 경우 this을 확인하십시오.

감사합니다.

screenshot

+0

또한 대화 형 플롯에 대한 참고서 만 타겟팅하는 경우 상호 작용을 수행하는 자바 스크립트 위젯을 만드는 흑 마술 인'@ interact'를 사용하면 훨씬 더 잘 수행 할 수 있습니다. – tacaswell

+0

@tcaswell, @interact를 사용하면 어떻게 될까요? – user3659451

+0

설명서를 보아라, 나는 실제로 그것을 보았던 적이 없다. 단지 데모를 보았다. – tacaswell

답변

6

은 기본적으로 당신 대신 당신이 실제로 원하는 된 nbagg 백엔드의 인라인 백엔드를 사용하는 두 가지 문제

  • %pylab inline 호출이 matplotlib.use('nbagg') 전화를 오버라이드 (override)를 직면하고있다. 최신 버전의 IPython (2.3)을 사용하는 경우 %pylab 호출 대신 nb34 백엔드를로드하려면 %matplotlib nbagg (또는 %matplotlib notebook)을 직접 사용할 수 있습니다.

  • nbagg 백엔드를 사용 설정하면 명시 적으로 표시해야합니다. 스크립트의 끝에 plt.show() 호출을 추가 ->업데이트이가 더 이상 필요하지 IPython 2.3.1와 함께이와

당신이 포함 된 상호 작용하기 matplotlib의 경험을 (감사 힌트에 대한 @tcaswell 없음) IPython 노트북에서. 그러나 코드를 빠르게 시도해도 원하는 결과가 나오지 않습니다. 단추가 반응하고 콜백이 실행되지만 print 호출에 아무 것도 표시되지 않습니다. 어쨌든, 다음 예제를 시도해보십시오 (IPython 2.3 필요) :

%matplotlib nbagg 
from matplotlib.widgets import Button 
import matplotlib.pyplot as plt 
def callback(event): 
    plt.text(event.xdata, event.ydata, 'clicked') 

f,a = plt.subplots(1) 
b1 = Button(a,'Button1') 
b1.on_clicked(callback) 
plt.show() 

Btw. % pylab 대신에 % matplotlib을 사용하는 것이 좋습니다. 나중에 약간의 부작용이 생깁니다 (here 참조).

+0

show를 호출해야하는 명백한 요구 사항은 mpl/ipython을 업그레이드 한 일부 조합으로 해결해야하지만, 얼마나 멀리 있는지는 확실하지 않습니다 (https://github.com/ipython/ipython/pull/6587 참조). +1은 파일 랩을 사용하지 않기 때문에, 실제로 원본에서 제거 할 수는 없지만 docs (두 mpl + IPython 모두)에서 삭제합니다. – tacaswell

+0

ipython을 원래 게시물 (https : // www. dropbox.com/s/co17ndyts0v8a4q/Screenshot%202014-11-13%2013.04.15.png?dl=0 그런 다음 필자의 노트북 구성 파일을 편집했습니다. https://www.dropbox.com/s/ox1i4k5vl355e06/Screenshot%202014-11-13%2013.14.30.png?dl=0 마침내 새 노트북을 시작하고 처음으로 코드를 실행했습니다. 마지막으로 (그래서'plt.show()') https://www.dropbox.com/s/wyy0wosbkupnbtg/Screenshot%202014-11-13%2013.18.14.png?dl=0 – user3659451

+0

이렇게 tcaswell의 plt.show 일을 정착시키고, 나는 5 시간 이상을 땜질 쟁이하는 내 문제를 다룬다. 이제 대화 형 플롯으로 ipython 노트북을 사용할 수 있습니다! 예. @ Jakob에게 감사합니다. – user3659451