1. 程式人生 > >ubuntu系統下matplotlib中文亂碼問題

ubuntu系統下matplotlib中文亂碼問題

在ubuntu 下利用matplotlib 繪圖的時候,影象上中文無法顯示。以下是我的解決辦法:
1. 下載中文字型simhei.ttf, 網址http://fontzone.net/download/simhei
2. 搜尋 matplotlib 字型的安裝位置

$locate -b '\mpl-data'

會得到 這個路徑/usr/share/matplotlib/mpl-data下面有fonts/ttf這個目錄,進入這個目錄,把剛才下載的simhei.ttf 字型複製到這個目錄下,注意許可權和歸屬是否與其它字型一致,我的是歸於root使用者的,所以用root 使用者複製過來。
3. 刪除當前使用者matplotlib 的緩衝檔案(如果沒有直接進入第四步)

$cd ~/.cache/matplotlib
$rm -rf *.*

4.程式碼中調整字型

#!/usr/bin/env python
#coding:utf-8
"""a demo of matplotlib"""
import matplotlib as  mpl
from matplotlib  import pyplot as plt
mpl.rcParams[u'font.sans-serif'] = ['simhei']
mpl.rcParams['axes.unicode_minus'] = False
years = [1950, 1960, 1970, 1980, 1990, 2000, 2010
] gdp = [300.2, 543.3, 1075.9, 2862.5, 5979.6, 10289.7, 14958.3] #建立一副線圖,x軸是年份,y軸是gdp plt.plot(years, gdp, color='green', marker='o', linestyle='solid') #新增一個標題 plt.title(u'名義GDP') #給y軸加標記 plt.ylabel(u'十億美元') plt.show()
  • 其中#coding:utf-8 說明檔案編碼格式
  • mpl.rcParams[u'font.sans-serif'] = ['simhei'] 用simhei 字型顯示中文
  • mpl.rcParams['axes.unicode_minus'] = False 這個用來正常顯示負號
  • plt.title(u'名義GDP')這裡的u 最好不要少