티스토리 뷰

환경

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



이 부분은 나중에 에러가 발생하면 로컬에 반영해야 겠다


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함