📌 この記事でわかること:
- yfinanceで作成したグラフに日本語が表示されない原因
- matplotlibのフォント設定による対処法
- フォントインストール・キャッシュ削除まで含めた完全対応ガイド
👤 対象となる読者:
- yfinanceやmatplotlibで株価グラフを作成している初心者
- 「なぜ日本語が出ない?」でつまずいたPythonユーザー
- グラフや分析を日本語で見やすく整えたい人
🛠 活用できるシーン:
- プレゼンやブログ用に日本語ラベルのグラフを作成したいとき
- Jupyter Notebookで見栄えよく仕上げたいとき
- matplotlibでの環境ごとのフォント設定ミスを防ぎたいとき
🔧 先に答えを知りたい人へ:
Pythonでyfinanceを使ってグラフを描いたときに日本語が表示されない場合、原因はmatplotlibのフォント設定にあります。
以下のように日本語フォントを指定することで解決できます。
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'IPAexGothic' # 環境により適宜変更
フォントがインストールされていない場合は別途インストールが必要です。
➡ 詳しい背景や他の対応方法について知りたい方は、ぜひこの記事を読み進めてみてください!
1. はじめに
Pythonのyfinance
ライブラリを使って株価グラフを作成していると、ラベルやタイトルなどに日本語を使ったときに、文字が表示されなかったり、四角い豆腐(□)になったりすることがあります。
「コードは合ってるはずなのに…」と悩む人も多いこの現象、実はmatplotlibのデフォルト設定が日本語非対応であることが原因です。
この記事では、そんな「グラフに日本語が出ない!」問題を初心者にも分かりやすく、実例を交えて解説していきます。
2. 現象の再現とエラー例
たとえば以下のように、yfinanceで株価を取得し、グラフにタイトルや凡例を追加したとします:
import yfinance as yf
import matplotlib.pyplot as plt
stock = "7203.T" # トヨタ自動車
data = yf.download(stock, start="2023-01-01", end="2024-01-01")
plt.plot(data['Close'])
plt.title("トヨタの株価推移")
plt.xlabel("日付")
plt.ylabel("株価(円)")
plt.show()
このコードを実行すると、タイトルや軸ラベルに日本語が表示されないことがあります。原因は、使用しているフォントが日本語を含んでいないためです。
3. 原因はmatplotlibのフォント設定
Pythonのグラフ描画ライブラリであるmatplotlib
は、デフォルトでは英語用フォントを使うため、日本語が文字化けしたり表示されなかったりします。
特にWindowsやLinuxではこの現象が起きやすく、macOSでも場合によっては日本語が出ないことがあります。
📸 実行結果(エラー時のグラフ例)👇

※このように、日本語が表示されない原因は「matplotlibのフォント未設定」によるものです。
4. 解決方法:日本語フォントを設定する
matplotlibで日本語を表示するには、以下のように日本語対応フォントを明示的に指定します。
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'IPAexGothic'
✅ よく使われる日本語フォント
- IPAexGothic(推奨)
- Meiryo:Meiryo, IPAexGothic などが使えると安心
- TakaoGothic:Hiragino Sans が標準で対応
- Hiragino Sans:フォントのインストールが必要なことが多い
※使用可能なフォントは環境によって異なります。
筆者はwindowsなのでMeiryoを使います。
🔄 フォントキャッシュのクリアも忘れずに
フォントを変更したのに反映されない場合は、以下のコマンドでキャッシュを削除してから再実行してください:
rm -rf ~/.cache/matplotlib
❓ Q. IPAexGothicが使えないのですが?
A. OSにフォントが入っていない可能性があります。IPAフォントの公式サイトなどからダウンロードし、インストールしてから再実行してください。
5. 実際にグラフを描いてみよう(コード例)
以下は日本語フォントを設定して、正しくグラフが描画される例です:
import yfinance as yf
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'IPAexGothic'
data = yf.download("6758.T", start="2023-01-01", end="2024-01-01") # ソニー
plt.plot(data['Close'])
plt.title("ソニーの株価推移")
plt.xlabel("日付")
plt.ylabel("株価(円)")
plt.grid()
plt.show()
📸 実行結果(成功例:フォント設定済)👇

6. よくあるミスと対策
- フォント名のスペルミス → 正確なフォント名を確認しよう
- フォントがそもそもインストールされていない → OSに合わせてインストール
- キャッシュを削除していない → 表示されない場合はキャッシュクリア
7. まとめ
- yfinanceでグラフに日本語を使うと表示されないことがある
- 原因はmatplotlibのフォント設定
- 日本語対応フォントを指定すれば解決可能!
「突然グラフが出なくなった!」そんな経験ありませんか?
それ、実は Adj Close
が取得できないことが原因かも…。
➡ yfinanceで’Adj Close’がない!? KeyErrorの原因と対処法
コメント