티스토리 뷰
환경
windows 10 home 64 bit
Anaconda 32bit 4.2.9
python 3.5
간단한 출력인데도 아래와 같은 오류가 떴다
TypeError: 'figure' is an unknown keyword argument
Backend Qt5Agg is interactive backend. Turning interactive mode on.
anaconda3 에서는 matplotlib 에 대해서 interactive mode 가 지원되는데
아래 명령을 통해서 matplotlib backend들을 조회할 수 있다
python -c “import matplotlib; print(matplotlib.rcsetup.all_backends)”
'GTK', 'GTKAgg', ........'MacOSX', 'Qt4Agg', 'Qt5Agg', 'TkAgg',.....등이 조회된다
내 PC에는 Backend 가 Qt5Agg 로 설정되어 있다고 했는데
아래와 같은 코드를 실행해보니 잘 출력이 된다
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.show()
그렇다면 import 할때마다 이 짓을 반복할 것인가?
1. 코드가 지저분하므로 기본 설정이 어디있는지 검색해본다
2. 코드가 지저분하지만 실행환경이 변할수 있으므로 계속 쓴다
일단 저장 후 1검색
-------------------------------
검색 해보니 use를 많이 사용하는 것 같다
아래처럼 사용하는 사람도 있다
import sys
import matplotlib
matplotlib.use('Qt4Agg')
matplotlib.rcParams['backend.qt4']='PySide'
--------------------------------------------------
그외 검색 중에 다른 경우의 Win10 + matplotlib 에러
PyQt5 에서 path 관련 text split 에 문제가 있어 library를 직접 수정해줘야 하는 경우가 있다고 한다
C:\Anaconda3\Lib\site-packages\matplotlib\font_manager.py
에서 win32FontDirectory() 매소드내 코드를 아래 처럼 변경해야 한다고 한다 (Line 232)
key, direc, any = winreg.EnumValue( local, j)
if not is_string_like(direc):
continue
if not os.path.dirname(direc):
direc = os.path.join(directory, direc)
#direc = os.path.abspath(direc).lower() # 이부분을 = before
direc = direc.split('\0', 1)[0] # 이렇게 = after
이 부분은 나중에 에러가 발생하면 로컬에 반영해야 겠다