Linux 시스템 에서 python matplotlib 그림 의 중국어 디 스 플레이 문 제 를 해결 합 니 다.

3860 단어 pythonmatplotlib
최근 에 python 데이터 분석 내용 을 배우 고 싶 어서 파충 류 를 만들어 데 이 터 를 얻 었 고 Anaconda 세트 도구(pandas,numpy,scipy,matplotlib,Jupyter)등 으로 초보적인 데이터 발굴 과 분석 을 할 계획 이다.
matplotlib 를 사용 하여 그림 을 그 릴 때 가로 좌 표 는 중국어 이지 만 그 려 진 막대 그래프 의 가로 좌 표 는 항상'프레임'을 표시 하고 자 료 를 찾 아 해결 합 니 다.이것 은 비교적 흔히 볼 수 있 는 문제 라 고 생각 합 니 다.인터넷 의 중국어 자료 도 확실히 많 지만 제 가 만난 문 제 를 철저히 해결 한 것 은 하나 도 없습니다.자질구레 한 시간 이 거의 3 시간 이 걸 려 서 야 마침내 해결 되 었 다.같은 문제 가 있 는 동 화 를 도 울 수 있 기 를 바 랍 니 다.
실행 환경:
  • python2.7
  • Linux Centos7
  • conda 로 설 치 된 matplotlib 와 pandas
  • 질문:
  • matplotlib 그림 을 그 려 중국어
  • 를 표시 할 수 없습니다.
    문제 의 원인:
  • Liux 운영 체제 및 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 를 검사 할 수 있 습 니 다.그렇지 않 으 면 유효 하지 않 습 니 다.내 가 이 사이트 에서 다운로드 한 것:http://font.chinaz.com/130130474870.htm
    압축 풀기 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 그림 의 중국어 디 스 플레이 문 제 를 해결 하 는 데 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

    좋은 웹페이지 즐겨찾기