Linux 시스템 의 python matplotlib 그림 을 기반 으로 한 중국어 디 스 플레이 문제 해결 방법
3680 단어 pythonmatplotlib
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 그림 을 기반 으로 한 중국어 디 스 플레이 문 제 를 해결 하 는 방법 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 가 되 어 주시 고 많은 응원 부 탁 드 리 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.