파이썬에서 matplotlib 드로잉이 제대로 작동하지 않는 경우 해결

12537 단어 python2.7matplotlib

소개



Anaconda 경유로 인스톨했을 것이지만, 묘화가 잘 되지 않는 matplotlib 의 대처가 간단합니다만, 의외로 빠졌으므로, 소개해 둡니다.

개발 환경



· OS : Mac OS X EI Capitan (10.11.5)
· Python 2.7.12 : Anaconda 4.1.1 (x86_64)

실패 예



먼저 대화형 파이썬을 엽니다.
$ python

여기서 matplotlib의 간단한 드로잉 샘플을 넣어 보겠습니다.
>>> import matplotlib.pyplot as plt
objc[10813]: Class TKApplication is implemented in both /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and /Users/{my_user_name}/anaconda2/lib/libtk8.5.dylib. One of the two will be used. Which one is undefined.
objc[10813]: Class TKMenu is implemented in both /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and /Users/{my_user_name}/anaconda2/lib/libtk8.5.dylib. One of the two will be used. Which one is undefined.
objc[10813]: Class TKContentView is implemented in both /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and /Users/{my_user_name}/anaconda2/lib/libtk8.5.dylib. One of the two will be used. Which one is undefined.
objc[10813]: Class TKWindow is implemented in both /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and /Users/{my_user_name}/anaconda2/lib/libtk8.5.dylib. One of the two will be used. Which one is undefined.

>>> plt.plot([1,2,3,4])
[<matplotlib.lines.Line2D object at 0x10f365a90>]

>>> plt.show()
Exception in Tkinter callback
Traceback (most recent call last):
  File "/Users/{my_user_name}/anaconda2/lib/python2.7/lib-tk/Tkinter.py", line 1537, in __call__
    return self.func(*args)
  File "/Users/{my_user_name}/anaconda2/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 283, in resize
    self.show()
  File "/Users/{my_user_name}/anaconda2/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 355, in draw
    tkagg.blit(self._tkphoto, self.renderer._renderer, colormode=2)
  File "/Users/{my_user_name}/anaconda2/lib/python2.7/site-packages/matplotlib/backends/tkagg.py", line 30, in blit
    id(data), colormode, id(bbox_array))
TclError

이와 같이, 에러가 나오고, matplotlib의 import가 통과해, 묘화용의 GUI가 표시되지만, 실제의 묘화 처리는 잘 되지 않는 것을 알 수 있습니다.



해결책



아래 파일을 편집하여 해결했습니다.
vim ~/.matplotlib/matplotlibrc

이 파일의backend: TkAgg되어 있는 부분을backend : Qt4Agg로 변경하면 OK입니다.

변경 후, 마찬가지로 matplotlib의 간단한 그리기 샘플을 넣어 보겠습니다.
$ python
>>> import matplotlib.pyplot as plt
>>> plt.plot([1,2,3,4])
>>> plt.show()



이제 잘 그릴 수 있었습니다.

참고



· Why is pyplot giving me a TclError on osx?
· matplotlib에서 그래프를 표시 할 수 없음 [해결]



따라 기다리고 있습니다!
Qiita : Carat 요시자키
twitter: @에서 t_ 요시자키
Hatena 블로그 : Carat COO 블로그

기계 학습을 맨투맨으로 배울 수 있는 가정 교사 서비스 「 키카가쿠
「수학→프로그래밍→Web어플리케이션」까지 단번에 배울 수 있는 「키카가쿠」에 흥미가 있는 분은 부담없이 연락해 주세요.

좋은 웹페이지 즐겨찾기