나는 IPython을 함께 사용하고 --pylab=inline
있으며 때로는 플롯을보기 위해 대화 형 확대 / 축소 가능한 matplotlib GUI로 빠르게 전환하고 싶습니다 (터미널 Python 콘솔에서 무언가를 플롯 할 때 표시되는 GUI). 어떻게 할 수 있습니까? 노트북을 떠나거나 다시 시작하지 않는 것이 좋습니다.
IPy 노트북의 인라인 플롯의 문제는 해상도가 제한되어 있으며 일부 작은 부분을보기 위해 확대 할 수 없다는 것입니다. 터미널에서 시작하는 maptlotlib GUI를 사용하여 확대하려는 그래프의 직사각형을 선택하고 그에 따라 축을 조정할 수 있습니다. 나는 실험을 시도했다
from matplotlib import interactive
interactive(True)
과
interactive(False)
그러나 그것은 아무것도하지 않았습니다. 온라인에서도 힌트를 찾을 수 없습니다.
답변
문서 에 따르면 다음 과 같이 앞뒤로 전환 할 수 있습니다.
In [2]: %matplotlib inline
In [3]: plot(...)
In [4]: %matplotlib qt # wx, gtk, osx, tk, empty uses default
In [5]: plot(...)
그러면 일반 플롯 창이 나타납니다 (노트북을 다시 시작해야 할 수 있음).
이게 도움이 되길 바란다.
답변
인라인 플롯에서 대화 형으로 전환하고 뒤로 전환하기 만하면됩니다 (이동 / 확대 가능). % matplotlib 매직을 사용하는 것이 좋습니다.
#interactive plotting in separate window
%matplotlib qt
html로 돌아 가기
#normal charts inside notebooks
%matplotlib inline
% pylab 매직은 다른 많은 것들을 가져오고 심지어 충돌을 일으킬 수도 있습니다. “pylab에서 가져 오기 *”를 수행합니다.
새 노트북 백엔드를 사용할 수도 있습니다 (matplotlib 1.4에 추가됨).
#interactive charts inside notebooks, matplotlib 1.4+
%matplotlib notebook
차트에서 더 많은 상호 작용을 원하면 mpld3 및 bokeh를 볼 수 있습니다. . mpld3는 엄청난 양의 데이터 포인트 (예 : <5k +)가없고 일반 matplotlib 구문을 사용하고 싶지만 % matplotlib notebook과 비교하여 더 많은 상호 작용을 원한다면 훌륭합니다. Bokeh는 많은 데이터를 처리 할 수 있지만 별도의 라이브러리이므로 구문을 배워야합니다.
또한 pivottablejs (pip install pivottablejs)를 확인할 수 있습니다.
from pivottablejs import pivot_ui
pivot_ui(df)
그러나 멋진 대화 형 데이터 탐색은 재현성을 완전히 망칠 수 있습니다. 그것은 나에게 일어 났으므로 데이터에 대한 느낌을 받으면 아주 초기 단계에서만 사용하고 순수한 인라인 matplotlib / seaborn으로 전환하려고합니다.
답변
matplotlib 1.4.0부터 이제 노트북에서 사용할 수있는 대화 형 백엔드가 있습니다.
%matplotlib notebook
해당 별칭이 등록되지 않은 IPython 버전이 몇 가지 있습니다. 대체 방법은 다음과 같습니다.
%matplotlib nbagg
그래도 작동하지 않으면 IPython을 업데이트하십시오.
이것으로 재생하려면 tmpnb.org로 이동하십시오.
붙여 넣기
%matplotlib notebook
import pandas as pd
import numpy as np
import matplotlib
from matplotlib import pyplot as plt
import seaborn as sns
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()
df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index,
columns=['A', 'B', 'C', 'D'])
df = df.cumsum()
df.plot(); plt.legend(loc='best')
코드 셀로 (또는 기존 파이썬 데모 노트북을 수정하십시오)
답변
문제에 대한 더 나은 솔루션은 차트 라이브러리 일 수 있습니다 . 훌륭한 Highcharts 자바 스크립트 라이브러리를 사용하여 아름답고 인터랙티브 한 플롯을 만들 수 있습니다. Highcharts는 HTML을 사용합니다.svg
태그를 사용하므로 모든 차트는 실제로 벡터 이미지입니다.
일부 기능 :
- .png, .jpg 및 .svg 형식으로 다운로드 할 수있는 벡터 플롯으로 해상도 문제가 발생하지 않습니다.
- 대화 형 차트 (확대 / 축소, 슬라이드, 포인트 위로 마우스 오버 등)
- IPython 노트북에서 사용 가능
- 비동기 플로팅 기능을 사용하여 동시에 수백 개의 데이터 구조를 탐색합니다.
면책 조항 : 저는 도서관 개발자입니다.
답변
저는 Anaconda의 “jupyter QTConsole”에서 ipython을 사용하고 있습니다. www.continuum.io/downloads on 5/28/20117.
다음은 ipython 매직을 사용하여 별도의 창과 인라인 플롯 모드 사이를 앞뒤로 전환하는 예입니다.
>>> import matplotlib.pyplot as plt
# data to plot
>>> x1 = [x for x in range(20)]
# Show in separate window
>>> %matplotlib
>>> plt.plot(x1)
>>> plt.close()
# Show in console window
>>> %matplotlib inline
>>> plt.plot(x1)
>>> plt.close()
# Show in separate window
>>> %matplotlib
>>> plt.plot(x1)
>>> plt.close()
# Show in console window
>>> %matplotlib inline
>>> plt.plot(x1)
>>> plt.close()
# Note: the %matplotlib magic above causes:
# plt.plot(...)
# to implicitly include a:
# plt.show()
# after the command.
#
# (Not sure how to turn off this behavior
# so that it matches behavior without using %matplotlib magic...)
# but its ok for interactive work...
답변
커널을 다시 시작하고 출력을 지운 다음 (새 노트북으로 시작하지 않는 경우) 다음을 실행합니다.
%matplotlib tk
자세한 내용 은 matplotlib 로 플로팅으로 이동하십시오.
답변
당신이 사용할 수있는
%matplotlib qt
오류가 발생 ImportError: Failed to import any qt binding
하면 PyQt5를 다음 pip install PyQt5
과 같이 설치 하십시오.