Linux 시스템 의 python matplotlib 그림 을 기반 으로 한 중국어 디 스 플레이 문제 해결 방법

3680 단어 pythonmatplotlib
최근 에 python 데이터 분석 내용 을 배우 고 싶 어서 파충 류 를 만들어 데 이 터 를 얻 었 고 Anaconda 세트 도구(pandas,numpy,scipy,matplotlib,Jupyter)등 으로 초보적인 데이터 발굴 과 분석 을 할 계획 이다.
matplotlib 를 사용 하여 그림 을 그 릴 때 가로 좌 표 는 중국어 이지 만 그 려 진 막대 그래프 의 가로 좌 표 는 항상'프레임'을 표시 하고 자 료 를 찾 아 해결 합 니 다.이것 은 비교적 흔히 볼 수 있 는 문제 라 고 생각 합 니 다.인터넷 의 중국어 자료 도 확실히 많 지만 제 가 만난 문 제 를 철저히 해결 한 것 은 하나 도 없습니다.자질구레 한 시간 이 거의 3 시간 이 걸 려 서 야 마침내 해결 되 었 다.같은 문제 가 있 는 동 화 를 도 울 수 있 기 를 바 랍 니 다.
실행 환경:
python2.7
Linux Centos7
conda 로 설 치 된 matplotlib 와 pandas
질문:
matplotlib 그림,중국 어 를 표시 할 수 없습니다.
문제 의 원인:
링크 ux 운영 체제 및 matplotlib 글꼴 라 이브 러 리 에 사용 가능 한 중국어 글꼴 이 없습니다.
matplotlib 패 키 지 는 기본적으로 ASCII 코드 만 지원 하고 유 니 코드 코드 는 지원 되 지 않 습 니 다.
인터넷 자료 요약:
matplotlib 의 자원 설정 파일 을 수정 합 니 다.예 를 들 어"Simhei"글꼴 을 추가 합 니 다.(이 글꼴 은 모든 Liux 시스템 에 있 는 것 이 아 닙 니 다!개 정 된 것 은 소 용이 없다)
Liux 에 중국어 글꼴 을 설치 하고 matplotlib 의 자원 설정 파일 을 수정 합 니 다.(허허,소 용 없어)
해결 방안:
사실 인터넷 의 각종 해결 방안 을 종합 한 것 이기 도 하 다.전체적으로 말 하면 다음 과 같은 몇 가지 절차 가 있다.
1.matplotlibrc 파일 이 있 는 경 로 를 가 져 옵 니 다.jupyter notebook 에서 가 져 오기:

import matplotlib
matplotlib.matplotlib_fname()
예 를 들 어,나의 이 파일 은:

u'~/miniconda2/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc'
후속 절 차 는 이 파일 의 font 인 자 를 수정 합 니 다.
2.시스템 의 모든 글꼴 과 사용 가능 한 중국어 글꼴 을 봅 니 다.또한 Jupyter nb 에서:

from matplotlib.font_manager import FontManager
import subprocess
fm = FontManager()
mat_fonts = set(f.name for f in fm.ttflist)
print mat_fonts
output = subprocess.check_output(
 'fc-list :lang=zh -f "%{family}
"', shell=True) print '*' * 10, ' ', '*' * 10 print output zh_fonts = set(f.split(',', 1)[0] for f in output.split('
')) available = mat_fonts & zh_fonts print '*' * 10, ' ', '*' * 10 for f in available: print f
위 작업 을 마치 면'사용 가능 한 글꼴'이 비어 있 습 니 다.matplotlib 에 사용 할 중국어 글꼴 이 없 기 때문에 중국어 에'프레임'이 표 시 됩 니 다.
3.운영 체제 에 중국어 글꼴 이 없다 고 가정 합 니 다.이 때 ttf 중국어 글꼴 을 다운로드 하고 cenos 에 설치 합 니 다.그 시스템 을 설치 하면 font-family 를 검사 할 수 있 습 니 다.그렇지 않 으 면 유효 하지 않 습 니 다.
압축 풀기 rar 파일./usr/share/fonts 경로 에서 이 글꼴 을 저장 할 폴 더 를 만 들 고 다운로드 한 ttf 파일 을 yourfontdir 에 복사 합 니 다.
4.cenos 에 이 글꼴 을 설치 합 니 다.

cd /usr/share/fonts/yourfontsdir
#        .       font-family
sudo mkfontscale
sudo mkfontdir
#      :
fc-cache
5.matplotlibrc 파일 수정
단계 1 에서 가 져 온 matplotlibrc 파일 설정 을 수정 합 니 다.
font.family 부분 주석 을 제거 하고 font.serif 지원 글꼴 에 중국어 글꼴 을 추가 합 니 다.여기에 방금 다운로드 한 중국어 글꼴 의 font-family 를 추가 합 니 다.fc-list 명령 을 통 해 찾 아 볼 수 있 습 니 다.나 에 게 추 가 된 것 은'WenQuanYi Zen Hei Mono'글씨체 다.
다음 설명 은 삭제 해 야 합 니 다.그렇지 않 으 면 중국어 감호 도 사각형 을 표시 합 니 다.

axes.unicode_minus : False
6.이 단계 가 가장 중요 하 다!matplotlib 에 중국어 글꼴 추가
5 단 계 를 마 친 후 2 단 계 를 조작 하면'사용 가능 한 중국어 글꼴'이 방금 설 치 된 글꼴 이 있 지만 그림 은 중국 어 를 표시 할 수 없습니다.이 글꼴 은 centos 에 설치 되 어 있 고,matplotlib 에 이 글꼴 을 사용 하 라 고 알려 주 었 기 때 문 입 니 다.하지만,matplotlib 에 서 는 이 글꼴 의 ttf 파일 을 찾 을 수 없습니다...그 러 니까 하나 만들어 줘 야 돼.
다운로드 한 ttf 글꼴 을 다음 경로 로 복사 합 니 다:

~/miniconda2/lib/python2.7/site-packages/matplotlib/mpl-data/fonts/ttf
관련 cache 를 삭제 합 니 다.다음 경로 에서:

~/.cache/matplotlib
글꼴 과 연 결 된 cache 삭제
7.이제 다시 그림 을 그 려 보 자.해결 하 다.
이상 리 눅 스 시스템 에서 python matplotlib 그림 을 기반 으로 한 중국어 디 스 플레이 문 제 를 해결 하 는 방법 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 가 되 어 주시 고 많은 응원 부 탁 드 리 겠 습 니 다.

좋은 웹페이지 즐겨찾기