- 技術 💻
matplotlibの使い方と日本語文字化け対策|OS別・Colab・3.12対応
matplotlib(マットプロットリブ)とは、Pythonで折れ線グラフや棒グラフなどを描いて、画像やPDFに保存できるグラフ描画ライブラリです。pip install matplotlib で入り、import matplotlib.pyplot as plt から使います。日本語が「□」(豆腐と呼ばれる四角)になるのは、既定のフォント(DejaVu Sans)に日本語の文字が入っていないためで、日本語フォントを指定すれば解決します。
この記事では、まず6種類の基本グラフと保存(savefig)のコピペ用コードを、出力ファイルのサイズつきで紹介します。後半では、日本語が□になる症状を再現して実際の警告文を掲載し、Windows・macOS・Linux・Google Colab 別の設定コード一覧、フォントの有無を調べるコード、キャッシュの扱い、そして japanize-matplotlib が Python 3.12 以降で import できない理由(distutils の削除)と代替手段を、すべて実行して確かめた結果つきで解説します。
検証環境:Ubuntu 24.04、Python 3.14.7(japanize-matplotlib の確認は Python 3.12.3)、matplotlib 3.11.2(2026年9月リリース、Python 3.11 以上が必要)。Windows・macOS・Colab の画面は実行していないため、各OSの記述は公式情報と一般的なフォント名に基づきます。
matplotlibの使い方・文字化け対策の早見表
| やりたいこと | コード |
|---|---|
| インストール | pip install matplotlib |
| 図と軸を作る | fig, ax = plt.subplots(figsize=(6, 4)) |
| 折れ線 | ax.plot(x, y, marker="o", label="名前") |
| 棒 | bars = ax.bar(labels, values) → ax.bar_label(bars) |
| 散布図 | ax.scatter(x, y, alpha=0.7) |
| ヒストグラム | ax.hist(data, bins=20) |
| 円 | ax.pie(values, labels=labels, autopct="%1.1f%%") |
| 複数グラフ | fig, axes = plt.subplots(2, 2, layout="constrained") |
| タイトル・軸ラベル・凡例 | ax.set_title() / ax.set_xlabel() / ax.legend() |
| 画像で保存 | fig.savefig("a.png", dpi=150, bbox_inches="tight") |
| 日本語(Windows) | plt.rcParams["font.family"] = "Yu Gothic"(または "Meiryo") |
| 日本語(macOS) | plt.rcParams["font.family"] = "Hiragino Sans" |
| 日本語(Linux) | sudo apt install fonts-noto-cjk → "Noto Sans CJK JP" |
| 日本語(Colab・OS問わず) | pip install matplotlib-fontja → import matplotlib_fontja |
| マイナス記号の□対策 | plt.rcParams["axes.unicode_minus"] = False |
| フォントがあるか調べる | {f.name for f in font_manager.fontManager.ttflist} |
| japanize-matplotlib が 3.12 で動かない | matplotlib-fontja か rcParams 設定に切り替える |
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「matplotlibの使い方と日本語文字化け対策|OS別・Colab・3.12対応」
matplotlibの基本:6種類のグラフと保存
準備
pip install matplotlib numpy
グラフは「Figure(図全体)」と「Axes(1つのグラフ領域)」の2つで考えるとわかりやすくなります。fig, ax = plt.subplots() で両方を作り、ax.plot() のように Axes に描いて、fig.savefig() で Figure を保存します。
| 名前 | 何か | 主な操作 |
|---|---|---|
Figure(fig) |
画像1枚ぶんの図全体 | fig.savefig()、fig.suptitle() |
Axes(ax) |
軸のついたグラフ1つ | ax.plot()、ax.set_title()、ax.legend() |
pyplot(plt) |
手早く描くための関数群 | plt.subplots()、plt.rcParams |
6種類をまとめて描くコード
日本語の設定は後半で扱うため、ここではラベルを英語にしています。
import matplotlib
matplotlib.use("Agg") # 画面のない環境でも画像を保存できる設定
import matplotlib.pyplot as plt
import numpy as np
print("matplotlib", matplotlib.__version__)
# 1. 折れ線グラフ
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
orders = [120, 135, 128, 160, 172, 190]
fig, ax = plt.subplots(figsize=(6, 4))
ax.plot(months, orders, marker="o", label="orders")
ax.set_title("Monthly orders")
ax.set_xlabel("month")
ax.set_ylabel("count")
ax.grid(True, alpha=0.3)
ax.legend()
fig.savefig("out/line.png", dpi=150, bbox_inches="tight")
plt.close(fig)
# 2. 棒グラフ
items = ["notebook", "pen", "folder", "tape"]
stock = [42, 75, 18, 30]
fig, ax = plt.subplots(figsize=(6, 4))
bars = ax.bar(items, stock, color="tab:blue")
ax.bar_label(bars)
ax.set_title("Stock by item")
fig.savefig("out/bar.png", dpi=150, bbox_inches="tight")
plt.close(fig)
# 3. 散布図
rng = np.random.default_rng(0)
x = rng.uniform(0, 10, 50)
y = 2 * x + rng.normal(0, 2, 50)
fig, ax = plt.subplots(figsize=(6, 4))
ax.scatter(x, y, alpha=0.7)
ax.set_title("Scatter")
fig.savefig("out/scatter.png", dpi=150, bbox_inches="tight")
plt.close(fig)
# 4. ヒストグラム
scores = rng.normal(60, 12, 500)
fig, ax = plt.subplots(figsize=(6, 4))
counts, edges, _ = ax.hist(scores, bins=20, edgecolor="white")
ax.set_title("Histogram")
fig.savefig("out/hist.png", dpi=150, bbox_inches="tight")
plt.close(fig)
print("bins:", len(counts), "total:", int(counts.sum()))
# 5. 円グラフ
share = [45, 30, 15, 10]
labels = ["A", "B", "C", "D"]
fig, ax = plt.subplots(figsize=(5, 5))
ax.pie(share, labels=labels, autopct="%1.1f%%", startangle=90, counterclock=False)
ax.set_title("Share")
fig.savefig("out/pie.png", dpi=150, bbox_inches="tight")
plt.close(fig)
# 6. 複数グラフ(2行2列)
fig, axes = plt.subplots(2, 2, figsize=(10, 7), layout="constrained")
axes[0, 0].plot(months, orders, marker="o"); axes[0, 0].set_title("line")
axes[0, 1].bar(items, stock); axes[0, 1].set_title("bar")
axes[1, 0].scatter(x, y, s=10); axes[1, 0].set_title("scatter")
axes[1, 1].hist(scores, bins=20); axes[1, 1].set_title("hist")
fig.suptitle("Dashboard")
fig.savefig("out/subplots.png", dpi=150)
fig.savefig("out/subplots.pdf")
fig.savefig("out/subplots.svg")
plt.close(fig)
実行結果(mkdir out してから実行。Python 3.14.7 / matplotlib 3.11.2):
matplotlib 3.11.2
bins: 20 total: 500
出力されたファイル(Pillow でサイズを確認):
| ファイル | 画像サイズ | 容量 | 内容 |
|---|---|---|---|
| line.png | 810×588px | 40 KB | 月別の折れ線、マーカー・凡例・薄いグリッドつき |
| bar.png | 768×559px | 21 KB | 品目別の棒、棒の上に数値ラベル |
| scatter.png | 768×558px | 25 KB | 右上がりに散らばる50点 |
| hist.png | 780×558px | 17 KB | 平均60付近が高い山型、20本の棒 |
| pie.png | 607×639px | 27 KB | 4区分、12時の位置から時計回り、%表示 |
| subplots.png | 1500×1050px | 79 KB | 上の4種を2行2列に配置 |
| subplots.pdf / .svg | — | 17 KB / 57 KB | 拡大しても粗くならないベクター形式 |
各グラフのポイントです。
| グラフ | よく使う引数 | 用途 |
|---|---|---|
ax.plot |
marker、linestyle、label、color |
時系列の推移 |
ax.bar / ax.barh |
color、width、ax.bar_label() |
項目の比較(横向きは barh) |
ax.scatter |
s(点の大きさ)、c(色)、alpha |
2つの値の関係 |
ax.hist |
bins、range、edgecolor |
分布の形を見る |
ax.pie |
autopct、startangle、counterclock |
構成比(項目は少なめに) |
plt.subplots(行, 列) |
figsize、layout="constrained"、sharex |
複数グラフの並べ方 |
layout="constrained" を付けると、タイトルや軸ラベルが重ならないよう自動で余白が調整されます。matplotlib.use("Agg") は、サーバーやスクリプトで画像保存だけ行う場合の設定です。Jupyter や Colab ではこの行は不要で、plt.show() で画面に表示できます。
savefigの dpi と bbox_inches の違い
figsize=(6, 4) の同じ図を、保存の引数だけ変えて比べました。
fig, ax = plt.subplots(figsize=(6, 4))
ax.plot([1, 2, 3], [1, 4, 9]); ax.set_title("bbox test")
fig.savefig("out/default.png")
fig.savefig("out/dpi150.png", dpi=150)
fig.savefig("out/dpi150_tight.png", dpi=150, bbox_inches="tight")
fig.savefig("out/dpi150_tight_pad.png", dpi=150, bbox_inches="tight", pad_inches=0.3)
fig.savefig("out/transparent.png", dpi=150, transparent=True)
| 保存方法 | 画像サイズ(px) | 説明 |
|---|---|---|
| 引数なし | 600×400 | 6×4インチ × 既定の100dpi |
dpi=150 |
900×600 | ピクセル数 = インチ × dpi |
dpi=150, bbox_inches="tight" |
755×558 | 周りの余白を切り詰めるので小さくなる |
上に pad_inches=0.3 を追加 |
815×618 | 切り詰めたあとに残す余白を指定 |
dpi=150, transparent=True |
900×600 | 背景が透明(スライドに貼るとき便利) |
資料用なら dpi=150〜300、bbox_inches="tight" が定番です。ラベルが画像の外にはみ出して切れるときも、bbox_inches="tight" で収まります。拡張子を .pdf・.svg にすればベクター形式で保存されます。
日本語が□になる症状を再現する
フォント未設定で日本語を書くと
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
print(plt.rcParams["font.family"], plt.rcParams["font.sans-serif"][:2])
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [3, 1, 2])
ax.set_title("月別の注文数")
fig.savefig("out/tofu.png")
実行結果(Linux、日本語フォントの指定なし):
['sans-serif'] ['DejaVu Sans', 'Bitstream Vera Sans']
j1_tofu.py:9: UserWarning: Glyph 26376 (\N{CJK UNIFIED IDEOGRAPH-6708}) missing from font(s) DejaVu Sans.
fig.savefig("out/tofu.png")
j1_tofu.py:9: UserWarning: Glyph 21029 (\N{CJK UNIFIED IDEOGRAPH-5225}) missing from font(s) DejaVu Sans.
fig.savefig("out/tofu.png")
j1_tofu.py:9: UserWarning: Glyph 12398 (\N{HIRAGANA LETTER NO}) missing from font(s) DejaVu Sans.
fig.savefig("out/tofu.png")
(「注」「文」「数」についても同じ警告が続く)
警告は「Glyph(字形)が DejaVu Sans に無い」という意味です。26376 は「月」の文字コード(U+6708)で、「月」「別」「の」…と1文字ずつ警告が出ます。画像では、その文字の位置が□になります。missing from font(s) DejaVu Sans と出たら、日本語フォントが設定されていない合図です。
文字化けの原因の整理
| 症状・メッセージ | 原因 | 対策 |
|---|---|---|
Glyph ... missing from font(s) DejaVu Sans |
日本語フォントを指定していない | rcParams["font.family"] に日本語フォントを設定 |
findfont: Font family 'Meiryo' not found. のあと Glyph 警告 |
指定したフォントがそのPCに無い | OSに合う名前にする(次の表)/フォントを入れる |
| 負の数のマイナスだけ□ | フォントに「−」(U+2212)が無い | axes.unicode_minus = False |
| フォントを入れたのに反映されない | フォント一覧のキャッシュが古い | キャッシュの削除、または addfont |
ModuleNotFoundError: No module named 'distutils' |
japanize-matplotlib が 3.12 以降に未対応 | matplotlib-fontja などへ切り替え |
OS別:日本語フォントの設定コード一覧
設定の早見表
| 環境 | 標準で入っている日本語フォント名(例) | 設定コード |
|---|---|---|
| Windows 10 / 11 | Yu Gothic、Meiryo、MS Gothic、BIZ UDGothic | plt.rcParams["font.family"] = "Yu Gothic" |
| macOS | Hiragino Sans(ヒラギノ角ゴシック) | plt.rcParams["font.family"] = "Hiragino Sans" |
| Linux(Ubuntu など) | 標準では入っていないことが多い | sudo apt install fonts-noto-cjk → "Noto Sans CJK JP" |
| Google Colab | 標準では入っていない | !pip install matplotlib-fontja → import matplotlib_fontja |
どの環境でも、axes.unicode_minus = False も一緒に設定しておくと、負の数のマイナスが□になるのを防げます。
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = "Yu Gothic" # macOS は "Hiragino Sans"、Linux は "Noto Sans CJK JP"
plt.rcParams["axes.unicode_minus"] = False
Windows・macOS の行は本記事の検証環境(Linux)では実行していません。フォント名がPCによって異なる場合があるため、次の章の「フォントの有無を調べるコード」で名前を確認してから設定するのが確実です。
複数のOSで同じコードを使う(候補リスト方式)
font.family にはリストも指定でき、見つかったフォントが使われます。Linux で動かすと日本語は正しく Noto Sans CJK JP で描かれ、Glyph 警告は出ませんでした。
plt.rcParams["font.family"] = ["Yu Gothic", "Hiragino Sans", "Noto Sans CJK JP", "sans-serif"]
plt.rcParams["axes.unicode_minus"] = False
ただし実行すると、存在しないフォント名のたびにメッセージが出ます(1枚の図で、各フォント名につき276行出ました)。
findfont: Font family 'Yu Gothic' not found.
findfont: Font family 'Hiragino Sans' not found.
(同じ2行が繰り返される)
ログが気になる場合は、インストール済みのフォントから1つ選んで設定する関数を使うとすっきりします。
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
from matplotlib import font_manager
def use_japanese_font():
"""OSにある日本語フォントを1つ選んで設定し、その名前を返す"""
candidates = [
"Yu Gothic", "Meiryo", "BIZ UDGothic", # Windows
"Hiragino Sans", "Hiragino Maru Gothic Pro", # macOS
"Noto Sans CJK JP", "Noto Sans JP", "IPAexGothic", "IPAGothic", # Linux / Colab
]
installed = {f.name for f in font_manager.fontManager.ttflist}
for name in candidates:
if name in installed:
plt.rcParams["font.family"] = name
plt.rcParams["axes.unicode_minus"] = False
return name
raise RuntimeError("日本語フォントが見つかりません。フォントをインストールしてください。")
print("使用フォント:", use_japanese_font())
fig, ax = plt.subplots()
ax.bar(["ノート", "ペン", "ファイル"], [42, 75, 18])
ax.set_title("備品の在庫数")
fig.savefig("out/ja_auto.png", dpi=150, bbox_inches="tight")
print("saved")
実行結果(Linux):
使用フォント: Noto Sans CJK JP
saved
警告なしで、日本語のタイトルと項目名が描かれた画像が保存されました。この関数をファイル先頭に置けば、Windows・macOS・Linux のどれでも、そのOSにあるフォントが選ばれます。
Linux:フォントを入れて使う
sudo apt install fonts-noto-cjk # Ubuntu / Debian
Ubuntu では /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc に入り、フォント名は Noto Sans CJK JP で使えます。入れたのに反映されないときは、後述のキャッシュ削除か addfont を使います。
Google Colab:2つの方法
Colab は Python 3.12 以降で動いているため、japanize-matplotlib はそのままでは import できません(後述)。次のどちらかを使います(Colab の画面での実行は未確認のため、最新の手順は各公式ドキュメントで確認してください)。
# 方法1:matplotlib-fontja(フォント同梱、import するだけ)
!pip install matplotlib-fontja
import matplotlib.pyplot as plt
import matplotlib_fontja
# 方法2:OSにフォントを入れて addfont で登録
!apt-get -y install fonts-noto-cjk
import matplotlib.pyplot as plt
from matplotlib import font_manager
path = "/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc"
font_manager.fontManager.addfont(path)
plt.rcParams["font.family"] = font_manager.FontProperties(fname=path).get_name()
plt.rcParams["axes.unicode_minus"] = False
方法2の addfont と get_name() は Linux で実行し、Noto Sans CJK JP という名前が得られることを確認しました。addfont はキャッシュを作り直さずに、その場でフォントを登録できるのが利点です。
フォントの有無を調べるコードとキャッシュ削除
使えるフォントを一覧する
import matplotlib
from matplotlib import font_manager
# 日本語フォントの候補(OSごとの代表的な名前)
candidates = ["Yu Gothic", "Meiryo", "Hiragino Sans", "Noto Sans CJK JP",
"IPAexGothic", "IPAGothic"]
installed = {f.name for f in font_manager.fontManager.ttflist}
for name in candidates:
print(f"{name:18} {'あり' if name in installed else 'なし'}")
# 名前に CJK / Gothic / ゴシック を含むフォントを一覧表示
hits = sorted({f.name for f in font_manager.fontManager.ttflist
if any(k in f.name for k in ("CJK", "Gothic", "ゴシック", "Hiragino", "Meiryo"))})
print(hits)
# 実際に使われるフォントファイルを確認
print(font_manager.findfont("Noto Sans CJK JP"))
print("cache:", matplotlib.get_cachedir())
実行結果(Linux、一覧は先頭のみ抜粋):
Yu Gothic なし
Meiryo なし
Hiragino Sans なし
Noto Sans CJK JP あり
IPAexGothic なし
IPAGothic あり
['IPAGothic', 'IPAPGothic', 'Noto Sans CJK HK', 'Noto Sans CJK HK Black', ...(以下 Noto の各ウェイト・言語が続く)]
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc
cache: /root/.cache/matplotlib
font.family に書く名前は、この ttflist に出てくる名前(f.name)と完全に一致させます。ファイル名(NotoSansCJK-Regular.ttc)や日本語の表示名とは違う場合があるので、ここで確かめるのが確実です。
キャッシュの場所と削除
matplotlib は初回の import 時にフォント一覧を調べ、キャッシュフォルダに fontlist-v○○○.json として保存します。フォントを後から入れても、このファイルが古いままだと一覧に出てきません。
| OS | キャッシュの場所(目安) | 削除コマンド例 |
|---|---|---|
| Windows | C:\Users\ユーザー名\.matplotlib |
Remove-Item $env:USERPROFILE\.matplotlib\fontlist-*.json |
| macOS / Linux | ~/.cache/matplotlib(または ~/.matplotlib) |
rm ~/.cache/matplotlib/fontlist-*.json |
| どこでも | python -c "import matplotlib; print(matplotlib.get_cachedir())" で確認 |
表示されたフォルダの fontlist-*.json を削除 |
検証環境で、空のキャッシュフォルダ(環境変数 MPLCONFIGDIR で指定)を使って import すると、fontlist-v3.11.0.json が新しく作られることを確認しました。削除したあとは Python(Jupyter ならカーネル)を再起動してから import し直すと、フォント一覧が作り直されます。
japanize-matplotlibがPython 3.12以降で動かない件
実際のエラー
japanize-matplotlib は、import するだけで日本語フォント(IPAexゴシック)を設定してくれる便利なライブラリです。PyPI の最新版は 1.1.3(2020年10月公開)で、Python 3.12 環境に入れて import すると次のエラーになりました。
File ".../site-packages/japanize_matplotlib/japanize_matplotlib.py", line 5, in <module>
from distutils.version import LooseVersion
ModuleNotFoundError: No module named 'distutils'
原因は、Python 3.12 で標準ライブラリから distutils が削除されたことです(PEP 632)。japanize-matplotlib の中でバージョン比較に distutils を使っているため、import の時点で止まります。
代替手段の比較
| 方法 | 確認結果 | 特徴 |
|---|---|---|
| matplotlib-fontja | PyPI に 1.1.0 あり。Python 3.12・3.14 で import でき、font.family が ['IPAexGothic'] になることを確認 |
IPAexゴシックを同梱。import matplotlib_fontja だけで使える |
| rcParams で直接指定 | Linux で確認済み | 追加ライブラリなし。OSのフォントを使う |
| addfont でファイルを登録 | Linux で確認済み | フォントファイルの場所がわかっていれば確実 |
| setuptools を入れて japanize を使う | Python 3.12 で pip install setuptools(84.0.0)後に import が通ることを確認 |
setuptools が提供する distutils の代わりで動いている状態。新しく書くなら上の方法がおすすめ |
| japanize-matplotlib-modern | PyPI に該当パッケージは見つからず(2026-10-02 時点、JSON API で 404) | 名前の似た非公式パッケージを入れる前に PyPI で存在と中身を確認 |
matplotlib-fontja で実行した結果です。
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import matplotlib_fontja
print(plt.rcParams["font.family"])
fig, ax = plt.subplots()
ax.set_title("月別の注文数")
fig.savefig("out/fontja.png")
print("saved")
['IPAexGothic']
saved
Glyph 警告は出ず、日本語のタイトルが描かれました。japanize-matplotlib の import japanize_matplotlib を import matplotlib_fontja に置き換えるだけで、既存のコードを移行できます。
よくある詰まりと直し方
| 症状 | 原因 | 直し方 |
|---|---|---|
日本語が□、missing from font(s) DejaVu Sans |
日本語フォント未設定 | rcParams["font.family"] を設定 |
findfont: Font family '...' not found. |
そのOSにないフォント名 | ttflist で名前を確認、OSに合わせる |
| マイナス記号だけ□ | axes.unicode_minus が True |
False にする |
| フォントを入れても変わらない | キャッシュが古い/カーネルが古い | fontlist-*.json 削除+再起動、または addfont |
No module named 'distutils' |
japanize-matplotlib が 3.12 以降に未対応 | matplotlib-fontja に置き換え |
| rcParams を設定したのに反映されない | 図を作った後に設定した | import 直後、描画より前に設定 |
| 保存した画像のラベルが切れる | 余白不足 | bbox_inches="tight" か layout="constrained" |
| 画像が粗い | dpi が低い(既定100) | dpi=150〜300、または .svg / .pdf で保存 |
サーバーで plt.show() しても何も出ない |
画面のない環境 | matplotlib.use("Agg") + savefig |
| グラフが重なって描かれる | 前の図を閉じていない | plt.close(fig)、図ごとに plt.subplots() |
pandas の DataFrame から直接グラフを描く方法(df.plot())は、pandas の逆引き記事で扱っています。
よくある質問
Q. plt.plot() と ax.plot() はどちらを使えばよいですか?
A. 1枚だけ手早く描くなら plt.plot()、複数のグラフや細かい調整をするなら ax.plot() が向いています。この記事のように最初から fig, ax = plt.subplots() で書いておくと、グラフが増えても同じ書き方で続けられます。
Q. 毎回フォントを設定するのが手間です。
A. matplotlibrc(設定ファイル)に font.family: Noto Sans CJK JP のように書くと、毎回の設定が不要になります。場所は python -c "import matplotlib; print(matplotlib.matplotlib_fname())" で確認できます。チームで共有するコードなら、この記事の use_japanese_font() 関数を共通モジュールに置く方法もわかりやすいです。
Q. 太字(fontweight="bold")にすると日本語が細いままです。 A. 指定したフォントに太字のウェイトが無いと、通常の太さで描かれます。Noto Sans CJK JP のようにウェイトがそろったフォントを選ぶと、太字も反映されます。
Q. matplotlib はどのバージョンを使えばよいですか? A. 2026年10月時点の最新は 3.11.2 で、Python 3.11 以上が必要です。この記事のコードは 3.11.2 で動作を確認しています。
まとめ
- グラフは
fig, ax = plt.subplots()→ax.plot()など →fig.savefig()の流れで書く - 保存は
dpi=150〜300+bbox_inches="tight"が定番。ピクセル数はインチ×dpi - 日本語の□は 既定フォント DejaVu Sans に日本語が無いため。
missing from font(s)警告が合図 - Windows は Yu Gothic / Meiryo、macOS は Hiragino Sans、Linux は Noto Sans CJK JP
- 名前は
font_manager.fontManager.ttflistで確認、反映されないときはキャッシュ削除かaddfont - japanize-matplotlib は Python 3.12 の distutils 削除で import 不可。matplotlib-fontja への置き換えが手軽
axes.unicode_minus = Falseでマイナス記号の□も防げる
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「matplotlibの使い方と日本語文字化け対策|OS別・Colab・3.12対応」
株式会社RJCでは、データを見やすく伝えるグラフ作りの工夫を仲間と学び合っています。こうした知識を共有しながら、日々技術を磨いています。
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。