質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

2331閲覧

python3 matplotlib 日本語に対応させたい

selva604

総合スコア14

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2018/10/31 08:45

前提・実現したいこと

AnacondaをIDEとして、また、仮想環境を作って、
python3系でグラフを描画しています。ラベルを日本語に対応させたいです。以下のサイトを参照しましたが、.ttfファイルが参照できず、エラーが出ます。https://datumstudio.jp/blog/matplotlib%E3%81%AE%E6%97%A5%E6%9C%AC%E8%AA%9E%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%82%92%E8%A7%A3%E6%B6%88%E3%81%99%E3%82%8Bwindows%E7%B7%A8

発生している問題・エラーメッセージ

UserWarning: findfont: Font family ['IPAexGothic'] not found. Falling back to DejaVu Sans. (prop.get_family(), self.defaultFamily[fontext])) 

該当のソースコード

#グラフを描画 import matplotlib.pyplot as plt import matplotlib def draw_graph(index): plt.figure() plt.plot(range(0,len(index)),index,marker=".") plt.xlabel("x軸") plt.ylabel("y軸") plt.grid(True)

補足情報(FW/ツールのバージョンなど)

python3.7,Anaconda

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiitoi

2018/10/31 08:55

OS はなんですか?
guest

回答1

0

ベストアンサー

手順

1. 設定ファイルの雛形をコピーする。

以下のコードを実行して、設定ファイル /Users/ユーザー名/.matplotlib/matplotlibrc を作成する。

python

1import os 2import shutil 3 4import matplotlib as mpl 5 6mpl_dirpath = os.path.dirname(mpl.__file__) 7# デフォルトの設定ファイルのパス 8default_config_path = os.path.join(mpl_dirpath, 'mpl-data', 'matplotlibrc') 9# カスタム設定ファイルのパス 10custom_config_path = os.path.join(mpl.get_configdir(), 'matplotlibrc') 11 12shutil.copyfile(default_config_path, custom_config_path)

2. 設定ファイルを編集して、日本語フォントを設定する。

以下でフォント名の一覧を確認し、日本語に対応しているフォントを好みで1つ選ぶ。

python

1import matplotlib.font_manager as fm 2 3# フォント一覧 4for font in fm.findSystemFonts(): 5 print(fm.FontProperties(fname=font).get_name())

先程コピーした matplotlibrc を開き、以下の行を追加
フォント名にスペースを含む場合でも、引用符で囲ったりする必要はありません。

font.family : <フォント名>

3. 実行すると、日本語が使えるようになっている。

python

1import numpy as np 2import matplotlib.pyplot as plt 3 4x = [1, 2, 3, 4, 5, 6, 7] 5y1 = [1, 1, 2, 3, 5, 8, 13] 6y2 = [0, 2, 4, 6, 8, 10, 12] 7y3 = [1, 3, 5, 7, 9, 11, 13] 8 9y = np.vstack([y1, y2, y3]) 10 11labels = ["フィボナッチ数列", "偶数", "奇数"] 12 13fig, ax = plt.subplots() 14ax.stackplot(x, y1, y2, y3, labels=labels) 15ax.legend(loc=2) 16plt.show()

イメージ説明

jupyter notebook の場合、Notebook は一旦 Shutdown して再度 import し直さないと反映されません。

投稿2018/10/31 09:29

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

selva604

2018/10/31 13:34

参考になりました。 解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問