python matplot 解決不能輸出中文的問題
阿新 • • 發佈:2018-12-29
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.單獨修改繪圖的字型
3.修改原始檔# -*- 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()
①在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將
④同時需要更改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