2013-08-11 4 views
2

xkcd를 사용하는 플롯에서 linebreak가 어떻게 작동하는지 궁금합니다. 내가matplotlib을 사용하여 python의 xkcd 주석에서 라인이 깨지지 않음

import matplotlib.pyplot as plt 
#plt.xkcd() 
plt.annotate('Testing\nThis\nOut', xy=(0.5, 0.5)) 

plt.show() 

(Example from here)

를 사용하는 경우 출력은 예상대로이지만, xkcding없이. plt.xkcd()에 댓글을 쓰면 후의 주석이 사라집니다.

나는 python3.3 및 2.7, py33 & py27-matplotlib를 Mac0SX에서 포트와 함께 설치해 보았습니다.

+0

우분투 13.04에서 IPython 1.0.0을 사용하여 matplotlib 1.3.0과 Python 2.7.5에서이 결과를 복제 할 수 없습니다. – hooy

+0

흠, matplotlib 1.3.0을 Python 2.7.5 및 Python 3.3.2와 함께 사용했습니다. iPython에서이 동작을 처음 보았지만 바로 지금 bash를 사용합니다. 몇 시간 안에 우분투에서 직접 테스트 해 볼 수 있습니다. –

답변

3

plt.xkcd()MacOSX matplotlib 백엔드에서 제대로 지원되지 않습니다. 귀하가 사용하고 있다고 가정합니다. 이것은 줄 바꿈을 넘어 확장됩니다. 축은 물결 모양이 아니라 직선입니다. 자세한 내용은 this issue을 참조하십시오.

제안 된대로 다른 백엔드를 사용하는 것이 좋습니다. IPython 노트북에서 작업하는 경우 inline 백엔드가 정상적으로 작동합니다. 예 :

ipython notebook --pylab inline 

plt.xkcd()을 사용하면 코드가 올바르게 작동합니다.

QT4Agg 백엔드도 작동합니다. 이 백엔드를 사용하려면 코드의 맨 처음에 다음을 추가 할 수 있습니다

import matplotlib 
matplotlib.use('QT4Agg') 

을 그러나 QT4/PyQt4을 요구하는 백엔드가 설치되어 있음을 가질 것을 요구 것이다.

+0

우발적으로 나는 이것을 풀었고 당신의 설명을 읽었습니다. 결과물은 귀하의 링크에서 정확히 지적되었습니다. 그러나 일부 오류 메시지로 인해 실제로 솔루션을 사용할 수 없습니다. –

+0

우발적으로이 문제를 해결 한 후 사용자의 설명을 읽습니다. 결과물은 귀하의 링크에서 정확히 지적되었습니다. 그러나 일부 오류 메시지로 인해 실제로 솔루션을 사용할 수 없습니다. matplotlib.use ('QT4Agg')가 오류를 던진 후에 matplotlib.pyplot을 가져옵니다. 지금 나를 위해 일하는 솔루션은 pylab.savefig ('example.pdf')를 사용하고 있습니다. 나는 당신의 제안을 시도 할 것이지만 어떻게 든 나는이 오류들에 대해 다시 물어볼 필요가 있다는 느낌을 가지고있다 ... –

+0

Qt4와 PyQt4가 설치되지 않았기 때문에 거의 확실하다. ipython 노트북을 사용하면 효과가 있으며, MacOSX 백엔드를 사용하지 않는 그림 저장도 가능합니다. – cge

관련 문제