Matplotを使ってグラフを描いた場合、環境によって文字が表示されないことがあります。 そんな時には、好きなフォントを設定してみましょう。
フォントを指定しない場合
まずは普通にsinグラフを描いてみましょう。
import numpy as np
import matplotlib.pyplot as plt
# x軸の範囲を設定
x = np.linspace(-np.pi, np.pi, 300)
# sinのグラフを描画
plt.plot(x, np.sin(x))
# グラフのタイトルの設定
plt.title('Sin(x) のグラフ')
# x軸、y軸のラベルを設定
plt.xlabel('x')
plt.ylabel('y')
# グラフを表示
plt.show()
これで描画すると、こう表示されます。「Sin(x) のグラフ」のなかの「のグラフ」の文字が豆腐になってしまっていますね……。

フォントを指定した場合
そこで、ヒラギノフォントを指定してみましょう。 (ついでに、retina解像度で表示するための設定も追加。)
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# retina解像度で表示するための設定
%config InlineBackend.figure_format = 'retina'
# ヒラギノを指定する
hiragino_font = fm.FontProperties(fname='/System/Library/Fonts/ヒラギノ角ゴシック W0.ttc')
plt.rcParams['font.family'] = hiragino_font.get_name()
# x軸の範囲を設定
x = np.linspace(-np.pi, np.pi, 300)
# sinのグラフを描画
plt.plot(x, np.sin(x))
# グラフのタイトルの設定
plt.title('Sin(x) のグラフ')
# x軸、y軸のラベルを設定
plt.xlabel('x')
plt.ylabel('y')
# グラフを表示
plt.show()
日本語の文字がちゃんと表示されて、Retina指定でグラフもくっきり表示されていますね。

システムのフォントの取得
システムで利用可能なフォントの取得はこれで大丈夫。
import matplotlib.font_manager as fm
# フォントのリストを取得
font_list = fm.findSystemFonts()
# フォントを表示
for font in font_list:
print(font)