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

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

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

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

Q&A

解決済

2回答

1887閲覧

matplotlib日本語設定について

chaki1957

総合スコア14

Matplotlib

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

0グッド

0クリップ

投稿2018/12/17 06:21

前提・実現したいこと

グラフ表記で日本語を使うことがあります。
日本語はめったに使わないので、設定ファイルをいじらず必要に応じ都度日本語表示をしようと思っています。
データはcsvです。
データ例です。
都道府県 平成12年 平成17年 平成22年 平成27年 平成28年
0 東京都 12064 12577 13159 13515 13624
1 神奈川県 8490 8792 9048 9126 9145
2 大阪府 8805 8817 8865 8839 8833
3 愛知県 7043 7255 7411 7483 7507

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

C:\Users\ユーザー名\Anaconda3\lib\site-packages\matplotlib\font_manager.py:1331: UserWarning: findfont: Font family ['IPAexGothic'] not found. Falling back to DejaVu Sans
(prop.get_family(), self.defaultFamily[fontext]))

グラフは書けますが、日本語表記できません。

フォントのありか

C:\Users\ユーザー名\Anaconda3\Lib\site-packages\matplotlib\mpl-data\fonts\ttf
にダウンロードしておいてあります。

当該のソースコード

import pandas as pd
import matplotlib as mpl
mpl.rcParams['font.family']='IPAexGothic'

df = pd.read_csv("population.csv", encoding="SHIFT_JIS")

増減(Increase and decrease)を調べる --- 平成28年と12年の差を計算し演算した結果を「増減」という列を作って代入

df['増減'] = df["平成28年"] - df["平成12年"]

df = df.sort_values(by=["増減"], ascending=False)

上位10位を得る 都道府県(Prefectures)---

top10 = df[0:10]

グラフで描画 

top10.plot.bar(y=["増減"], x="都道府県")
top10

試したこと

フォントファイルは小文字なので ipaexg としてみましたが変わりませんでした。

教えて下さると助かります。

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

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

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

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

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

guest

回答2

0

最近知ったのですがこれが一番簡単でした

pip install して import するだけで matplotlib を日本語表示対応させる
https://qiita.com/uehara1414/items/6286590d2e1ffbf68f6c

sh

1pip install japanize-matplotlib

python

1import matplotlib.pyplot as plt 2import japanize_matplotlib # <- これ 3 4plt.plot([1, 2, 3, 4]) 5plt.xlabel('簡単なグラフ') 6plt.show()

投稿2018/12/18 02:37

barobaro

総合スコア1286

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

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

chaki1957

2018/12/18 06:38

回答ありがとうございます。 始めたばかりで、自分の環境をよく理解しておらず、質問がずれているかもしれません。anacondをインストールしjupyter notebook で書いています。 pip install japanize-matplotlib を入力しますと、以下のコメントが出ます。 The following command must be run outside of the IPython shell: $ pip install japanize-matplotlib The Python package manager (pip) can only be used from outside of IPython. Please reissue the `pip` command in a separate terminal or command prompt. See the Python documentation for more information on how to install packages: python のURL 少し調べてみますと、anacondaにはcondaというパッケージマネージャーがあるようなので、こちらを使えということなのでしょうか?
barobaro

2018/12/18 06:54

Anaconda環境にpipでパッケージをインストールする https://qiita.com/mckeeeen/items/d4cbe4a16a102157f40c Jupyter内でしたらこれでいいかもしれません。 !pip install japanize-matplotlib https://teratail.com/questions/136589 GoogleのColaboratoryを使っています。 環境をあまりいじりたくないのでしたらこちらでいいかと思います。 https://colab.research.google.com/ !pip install japanize-matplotlib でインストールできます。 Google Colaboratoryを便利に使うためのTIPSまとめ https://karaage.hatenadiary.jp/entry/2018/12/17/073000
chaki1957

2018/12/19 03:39

丁寧な説明ありがとうございます。 少し試してみましたが、始めたばかりで浅学の当方には、理解できていない部分が多々あります。 もう少し、理解を深めながら、試した行きたいと思います。 上手くいく部分といかない部分が整理できて来たならば、再度ご報告します。 取り急ぎのお礼まで、ありがとうございました。
guest

0

ベストアンサー

フォントキャッシュを消す必要があります。

python

1import matplotlib 2print(matplotlib.get_cachedir())

でキャッシュのあるディレクトリを確認し、

  • fontList.cache

みたいな名前のファイル(環境によって若干ファイル名が異なる可能性があります。ググれば何かしら出てくると思いますが、判断できなければそれっぽいのをコメントで教えてください)を消してください。

投稿2018/12/17 14:09

hayataka2049

総合スコア30933

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

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

chaki1957

2018/12/18 03:36

回答ありがとうございます。試してみます。 わからないことが出てきましたらコメントいたします。 取り急ぎ、お礼までです。
chaki1957

2018/12/18 06:20

キャッシュのあるディレクトリC:\Users\ユーザー名.matplotlibで、中には tex.cacheとfontList.jsonしかありません。 tex.cacheの中は空ですが、こちらをデリートすれば良いのでしょうか? お手数おかけしますがよろしくお願いします。
hayataka2049

2018/12/18 06:22

念のためどちらも他ディレクトリにコピーを保存した上で両方消してみてください。その後再実行して日本語が表示されるかどうかご確認ください。
chaki1957

2018/12/18 06:28

早速の回答ありがとうございます。 試してみます。 取り急ぎ、お礼までです。
chaki1957

2018/12/18 06:53

ありがとうございます。 無事、日本語表記できました! また、わからないことがありましたら教えていただけるとありがたいです。 感謝です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問