ubuntu系統下matplotlib中文亂碼問題
阿新 • • 發佈:2019-01-04
在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
最好不要少