1. 程式人生 > >python matplot 解決不能輸出中文的問題

python matplot 解決不能輸出中文的問題

python中的matplotlib僅支援Unicode編碼,預設是不顯示中文的,如果讓其預設顯示中文,有下面3種方法:

1.最簡單的方法 全域性設定中文字型(推薦)

# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']   # 雅黑字型
plt.xlabel(u"哈哈")
plt.ylabel(u"哈哈")
plt.title(u"哈哈")
plt.show()

2.單獨修改繪圖的字型

# -*- coding: utf-8 -*-
from matplotlib.font_manager import FontProperties
import matplotlib.pyplot as plt
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)
plt.xlabel(u"哈哈", fontproperties=font)
plt.ylabel(u"哈哈", fontproperties=font)
plt.title(u"哈哈",fontproperties=font)
plt.show()
3.修改原始檔
①在python的安裝目錄中找到配置檔案: %Python_Home%\Lib\site-packages\matplotlib\mpl-data\matplotlibrc    (如,我的是在C:\Python34\Lib\site-packages\matplotlib\mpl-data),用任意文字編輯器開啟。
②找到139行的font.family  : sans-serif將其前面的#註釋號去掉
③找到151行的font.sans-serif   :AR PL UMing CN, SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif將
【AR PL UMing CN, SimHei】新增在最前面,其中AR PL UMing CN代表:宋體。SimHei代表:黑體。並將前面的#註釋號去掉,重啟編輯器後,便可顯示中文了。
④同時需要更改264行的axes.unicode_minus  : False;使其值為False;否則無法顯示負號

字型和英文對照

黑體 SimHei
微軟雅黑 Microsoft YaHei
微軟正黑體 Microsoft JhengHei
新宋體 NSimSun
新細明體 PMingLiU
細明體 MingLiU
標楷體 DFKai-SB
仿宋 FangSong
楷體 KaiTi
仿宋_GB2312 FangSong_GB2312
楷體_GB2312 KaiTi_GB2312


宋體:SimSuncss中中文字型(font-family)的英文名稱

Mac OS的一些:

華文細黑:STHeiti Light [STXihei]

華文黑體:STHeiti

華文楷體:STKaiti

華文宋體:STSong

華文仿宋:STFangsong

儷黑 Pro:LiHei Pro Medium

儷宋 Pro:LiSong Pro Light

標楷體:BiauKai

蘋果儷中黑:Apple LiGothic Medium

蘋果儷細宋:Apple LiSung Light

Windows的一些:

新細明體:PMingLiU

細明體:MingLiU

標楷體:DFKai-SB

黑體:SimHei

新宋體:NSimSun

仿宋:FangSong

楷體:KaiTi

仿宋_GB2312:FangSong_GB2312

楷體_GB2312:KaiTi_GB2312

微軟正黑體:Microsoft JhengHei

微軟雅黑體:Microsoft YaHei

裝Office會生出來的一些:

隸書:LiSu

幼圓:YouYuan

華文細黑:STXihei

華文楷體:STKaiti

華文宋體:STSong

華文中宋:STZhongsong

華文仿宋:STFangsong

方正舒體:FZShuTi

方正姚體:FZYaoti

華文彩雲:STCaiyun

華文琥珀:STHupo

華文隸書:STLiti

華文行楷:STXingkai

華文新魏:STXinwei