1. 程式人生 > >matplotlib顯示中文字型

matplotlib顯示中文字型

matplotlib 1.0.0版

對於3.0的可能不太適用,要注意語法結構!

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”,該行指示預設字型
注:在font.sans-serif中新增的字型名稱必須正確,可以在
$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  "一行.)