ipython 노트북 --pylab 인라인 : 플롯 확대 / 축소


82

인라인이 활성화 된 경우 플롯을 확대 할 수 있습니까? 특히 3d 플롯 회전 및 확대 / 축소와 관련하여 필요한 기능입니다.

답변:


90

이제 mpld3 덕분 에 인라인 플롯을 쉽게 확대 할 수 있습니다!

mpld3 ( pip install mpld3)를 설치 하고 노트북에 다음을 추가하기 만하면됩니다 .

%matplotlib inline
import mpld3
mpld3.enable_notebook()

이제 플롯의 왼쪽 하단에 마우스 확대 / 축소를 활성화 할 수있는 도구 모음 메뉴가 표시됩니다.


3D 플롯이 아직 지원되지 않는 것 같습니다. github.com/jakevdp/mpld3/issues/223
Théo T

3
이것은 훌륭하지만 일부 무거운 듀티 플롯 (예 : 수백만 개의 포인트를 포함하는 플롯)의 경우 매우 느리다는 점을 추가해야합니다.

2
나는 이것을 Jupyter Notebook 4.2.2에서 구현했고 확대하면 그림이 공백이되었습니다. imshow () 호출에 대한 인수로 origin = 'lower'를 추가하면 문제가 해결되었습니다. (예 : imshow (res, origin = 'lower', cmap = cm.gray))
DanGoodrick

6
나를 위해 작동하지 않습니다. 나는 얻고있다Json serialization error
Gulzar

95

이제 %matplotlib notebook대신 사용할 수 있으며 %matplotlib inline플롯과 상호 작용할 수 있습니다.


1
이것은 훌륭한 솔루션입니다. 시도했지만 작동하지 않으면 matplotlib의 버전을 확인하십시오. 나는 이것이 버전 1.5에서 소개되었다고 생각합니다
jpobst

서브 플롯에서 기대했던 것만 큼 잘 작동하지 않습니다. 개별 서브 플롯에 대해 확대 / 축소 및 이동이 가능하지만 전체 플롯 이미지의 크기를 늘리거나 줄일 수는 없습니다. 공정하게 말하면 위에서 묻는 원래 질문이 아닙니다.
ijoseph

1
@ijoseph 전체 이미지의 크기도 늘릴 수 있습니다. 그냥 플롯의 오른쪽 하단 모서리를 드래그 ..
주앙 Abrantes의에게

4
이미 % matplotlib를 인라인으로 호출했다면 노트북을 다시 시작해야 할 수도 있습니다
Guido

3
"Javascript 오류 : IPython이 정의되지 않았습니다"라는 오류가 발생합니다.
Ben

10

현재 가장 가까운 방법은 figsize함수를 사용하여 더 큰 크기로 다시 그리는 것 입니다. 인치 단위의 치수를 예상하는데, 처음 사용하려고 할 때 나를 붙 잡았습니다.

HTML5를 사용하여 플롯을 실시간으로 조작 할 수있는 풍부한 백엔드를위한 몇 가지 식물이 있지만 준비가되기까지 몇 달이 더 걸릴 것이라고 생각합니다.

로컬 컴퓨터에서 노트북을 사용하는 경우 현재 가장 쉬운 옵션은 인라인 모드를 사용하지 않는 것이므로 플롯이 별도의 창으로 나타납니다.


1
예, 최신 버전의 matplotlib를 사용하면 이제 nbagg 백엔드를 선택할 수 있습니다.
Thomas K

9

mpld3로 인해 노트북 실행 속도가 느려졌습니다. 동일한 대화 형 도구를 제공하지만 오른쪽 클릭 메뉴로 그래프를 저장할 수 있는 nbagg 백엔드 를 사용하는 것이 더 낫다는 것을 알았습니다 .

import matplotlib
matplotlib.use('nbagg')
import matplotlib.pyplot as plt

2
솔직히 이것이 최선의 대답이라고 생각하며 mpld3 및 더 많은 기능보다 훨씬 좋아 보입니다.
bznein


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.