古人智慧

Just Do it!
上士聞道,勤而行之;中士聞道,若存若亡;下士聞道,大笑之。不笑,不足以爲道。
~ 道德經 41

「實現夢想不是追逐成功,而是在於賦予生命意義,人生中的每個決定與聲音都有其重要含義。」"The key to realizing a dream is to focus not on success but on significance — and then even the small steps and little victories along your path will take on greater meaning."
電視名人-歐普拉·溫芙蕾(OPRAH WINFREY)

搜尋此網誌

Translation

2019年9月15日 星期日

[Python] 解決 matplotlib 在 Jupyter 無法顯示中文的方法

Jupyter這個工具是學習Python的好工具。
但是,在顯示中文會有問題,google有不少解決方式,下列方式比較彈性與合適我。

環境:

MacOS
Python 3.7.4

解決方法

在Jupyter內找出系統字型Font的名稱
import matplotlib
fm = matplotlib.font_manager.FontManager()
for f in fm.ttflist:
    print (f.name)
可以查到很多字型名稱。
在裡面找到帶有TC 的Font大部分應該是繁體字型,如果是SC是簡體字型。
這兩行設定這App要用的字型庫。
plt.rcParams['font.sans-serif'] = 'Noto Sans Mono CJK TC'
plt.rcParams['axes.unicode_minus'] = False
我用這個字型為例
%pylab inline
x = linspace(-5, 5, 2000)
#plt.rcParams['font.sans-serif'] = 'Noto Sans CJK TC'
plt.rcParams['font.sans-serif'] = 'Noto Sans Mono CJK TC'
plt.rcParams['axes.unicode_minus'] = False
plot(x, sinc(x))
plt.gcf().set_size_inches(20, 8)
plt.title(u'sinc(x)圖形', fontsize=25)
plt.xlabel(u'-5到5範圍', fontsize=25)
plt.ylabel(u'sinc(x)', fontsize=25)
plt.tick_params(axis ='both', labelsize=25)
plt.savefig('sample.jpg')

結果如下:

沒有留言:

張貼留言