matplotlib顯示中文字型
阿新 • • 發佈:2019-01-27
matplotlib 1.0.0版
對於3.0的可能不太適用,要注意語法結構!
注:在font.sans-serif中新增的字型名稱必須正確,可以在C:/Python26/Lib/site-packages/matplotlib/mpl-data/matplotlibrc檔案(Windows) /usr/share/matplotlib/mpl-data/matplotlibrc (Linux): font.family : sans-serif #開啟該選項 font.sans-serif : Microsoft YaHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif #新增“Microsoft YaHei”,該行指示預設字型
$HOME/.matplotlib/fontList.cache
C:/Users/使用者名稱/.matplotlib/fontList.cache
檔案中 ,通過查詢檔名找到對應的名稱,如上面的"Microsoft YaHei"的字型檔名稱為“msyh.ttf",搜尋一下就找到了。一些可用的字型名稱見示例程式碼.如果還不行,試著將字型檔案copy到
/usr/share/matplotlib/mpl-data/fonts/ttf(Windows)
C:/Python26/Lib/site-packages/matplotlib/mpl-data/fonts/ttf(Linux)
目錄下,再試。示例程式碼如下:
# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt plt.figure(figsize=(8,4)) a = plt.text(0.05, 0.05, u"直線和二次曲線的交點") #Microsoft YaHei,FangSong,YouYuan,SimHei,STKaiti,STSong,SimSun-ExtB,Webdings plt.text(0.05, 0.95, u "STSong直線", fontproperties='STSong' ) plt.text(0.05, 0.85, u"STKaiti直線", fontproperties='STKaiti') plt.text(0.05, 0.75, u"FangSong直線", fontproperties='FangSong') plt.text(0.05, 0.65, u"YouYuan直線", fontproperties='YouYuan') plt.text(0.05, 0.55, u"SimHei直線", fontproperties='SimHei') plt.text(0.05, 0.45, u"Microsoft YaHei微軟雅黑", fontproperties='Microsoft YaHei') plt.text(0.05, 0.35, u"STCaiyun華文彩雲", fontproperties='STCaiyun') plt.show()
注意: 字串,都用u"..."的形式.(檔案編碼utf-8 加上" # coding = utf-8 "一行.)