LoginSignup
0
5

More than 3 years have passed since last update.

VS Code + matplotlib で日本語のグラフを表示する

Posted at

前回「VS Code で Jupyter を動かしてみる」をやってみましたがグラフ表示の matplotlib での日本語表示がうまくいきませんでした。
いろいろ調べて出来るようになったので記録しておきます。
方法は1つだけではなさそうですが、これでいくことにしました。

1. 環境

OS:Windows 10
VS Code:1.43.2
拡張機能:Anaconda Extension Pack 1.0.1
Pythonインタープリター:3.7.3 64-bit

2. ビフォー

import matplotlib.pyplot as plt

flg, ax = plt.subplots()

x = [1, 2, 3, 4, 5]
y = [3, 6, 4, 8, 5]
labels = ['バナナ', 'パイナップル', 'みかん', 'いちご', 'メロン']
ax.bar(x, y, tick_label=labels, label='好きなフルーツ')
ax.legend()

plt.show()

上のソースを実行したところ、日本語表示したいところが長四角の豆腐になってしまいます。
image.png

Jupyter notebook で試してみても状況は同じです。
image.png

3. 対応

3-1.フォントファイルの取得

OSにあらかじめインストールされているフォントを使用してもいいのですが、Linuxなどの環境でも同じフォントを使用したいのでIPAexゴシックを使用することにしました。
https://ipafont.ipa.go.jp/ からダウンロードします。
image.png

これを解凍してフォントファイル(拡張子 tff)を取得します。
image.png

ipaexg.tff は IPAexゴシック
ipaexm.tff は IPAex明朝
です。

3-2.フォントファイルの配置

matplotlibの設定ファイルを探します。

import matplotlib as mpl
print(mpl.matplotlib_fname())

私の環境の場合はここにありました。

C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\mpl-data\matplotlibrc

上記からの相対パスとしての
../fonts/ttf
すなわち

C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\mpl-data\fonts/ttf

にフォントファイル ipaexg.ttf を配置します。

3-3.matplotlib側での設定

C:\Users\<username>\.matplotlib\fontlist-v300.json

を削除します。
キャッシュファイルがあればそれも削除します。

ここでいったん VS Code を再起動しておきます。

4.アフター

最初のソースにフォントを明示的に指定するために

plt.rcParams['font.family'] = 'IPAexGothic'

を挿入します。

import matplotlib.pyplot as plt

plt.rcParams['font.family'] = 'IPAexGothic'
flg, ax = plt.subplots()

x = [1, 2, 3, 4, 5]
y = [3, 6, 4, 8, 5]
labels = ['バナナ', 'パイナップル', 'みかん', 'いちご', 'メロン']
ax.bar(x, y, tick_label=labels, label='好きなフルーツ')
ax.legend()

plt.show()

うまくいきました。日本語が表示されました。
image.png

Jupyter notebook でも試してみます。大丈夫でした。
image.png

5.このあとやりたいこと

scikit-learn を用いて分析したデータをグラフにしてみたい。

6.参考にさせていただいたQiitaの先輩

@Kanatani28 さん https://qiita.com/maroKanatani/items/3b080c639395bba7795a
@yniji さん https://qiita.com/yniji/items/3fac25c2ffa316990d0c

0
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
5