2016-09-17 6 views
0

ipython 노트북 설명서를 통해이 작업을 셀에서 실행한다고합니다. 수입 PLTipython 노트북에 matplotlib를 표시하는 중 오류가 발생했습니다.

x = np.linspace(0, 2*math.pi) 
plt.plot(x, np.sin(x), label=r'$\sin(x)$') 
plt.plot(x, np.cos(x), 'ro', label=r'$\cos(x)$') 
plt.title(r'Two plots in a graph') 
plt.legend() 

같은 NP 수입 수학 수입 matplotlib.pyplot로 NumPy와 나는 실제 그래프를 얻어야한다. Isntead 내가 얻을

<matplotlib.legend.Legend at 0x1124a2fd0> 

대신 무엇을해야합니까?

%matplotlib inline

그 뒤의 이야기는 간단하다 :

+1

'plt.show을 방지하기 위해 플롯의 끝에 ;을 포함, 결과 예뻐 확인하십시오. – Abdou

답변

3

봅니다 곳 (즉, 노트북에 내장 된 html 요소로) 플롯을 렌더링하는하기 matplotlib을 나타냅니다 노트북에 일찍 문을 추가합니다 matplotlib는 jupyter와 ipython 노트북이 대중화되기 이전부터 존재할만큼 오래되었습니다. 당시 플롯을 작성하는 표준 방법은 스크립트를 작성하여 실행하고 결과로 이미지 파일을 얻는 것이 었습니다. 현재 동일한 이미지가 위의 보충 "재배 선"명세서의 비용으로 노트북에서 쉽고 직접 볼 수 있습니다.

노트북에 플롯을 표시하려면 plot 문을 해당 블럭 코드의 마지막 줄로 사용할 수 있습니다 (즉, 플롯이 자동으로 jupyter로 렌더링되는 반환 값입니다). 또는 plt.show() 주석에 Abdou가 설명했다. 모든 플롯 (빠르게하기 matplotlib 이럴와 털이 얻을 수있는) 하나 개의 이미지로 렌더링해야 할 경우,

# Put these 2 in two separate notebook blocks to get 2 separate plots. 
# As-is the first one will never get displayed 
plt.plot(x, np.sin(x), label=r'$\sin(x)$') 
plt.plot(x, np.cos(x), 'ro', label=r'$\cos(x)$') 

보고에서이 있습니다 또한

, 당신은이 코드에서 플롯을 가지고 조심 subplot documentation

은 (는) '해당 스크립트의 끝에 추가해야 추악한 <matplotlib.legend.Legend at 0x1124a2fd0>

관련 문제