ざっくり調べた感じ2つ方法がある
1つは japanize-matplotlib を使う方法
三重大学の奥村さんが記事にしてる
https://oku.edu.mie-u.ac.jp/~okumura/python/plot.html
ただし、このパッケージはpipでしかインストールできない
conda-forgeで探したけどない
なのでパス
------------
もう1つは日本語fontを指定する方法
labelに日本語を使いたいときは、
matplotlib.pyplotの日本語化 #Python - Qiita
この記事のコマンドをpython上で走らせると、matplotlibで使える日本語フォントが表示される
自分のMacで実行してみた結果は以下
from matplotlib import font_manager
for i in font_manager.fontManager.ttflist:
if ".ttc" in i.fname:
print(i)
<Font 'PT Serif Caption' (PTSerifCaption.ttc) normal normal 400 normal>
<Font 'Chalkboard' (Chalkboard.ttc) normal normal 400 normal>
<Font 'Avenir' (Avenir.ttc) normal normal book normal>
<Font 'Marker Felt' (MarkerFelt.ttc) normal normal 400 normal>
<Font 'Iowan Old Style' (Iowan Old Style.ttc) normal normal roman normal>
<Font 'Gurmukhi MN' (Gurmukhi MN.ttc) normal normal 400 normal>
<Font 'Palatino' (Palatino.ttc) normal normal 400 normal>
<Font 'Malayalam Sangam MN' (Malayalam Sangam MN.ttc) normal normal 400 normal>
<Font 'Hiragino Sans' (ヒラギノ角ゴシック W8.ttc) normal normal 700 normal>
<Font 'American Typewriter' (AmericanTypewriter.ttc) normal normal 400 normal>
<Font 'Sinhala Sangam MN' (Sinhala Sangam MN.ttc) normal normal 400 normal>
<Font 'Bangla Sangam MN' (Bangla Sangam MN.ttc) normal normal 400 normal>
<Font 'Kefa' (Kefa.ttc) normal normal regular normal>
<Font 'Hoefler Text' (Hoefler Text.ttc) normal normal 400 normal>
<Font 'Menlo' (Menlo.ttc) normal normal regular normal>
<Font 'Didot' (Didot.ttc) normal normal 400 normal>
<Font 'KufiStandardGK' (KufiStandardGK.ttc) normal normal regular normal>
<Font 'PT Serif' (PTSerif.ttc) normal normal 400 normal>
<Font 'Cochin' (Cochin.ttc) normal normal 400 normal>
<Font 'Myanmar MN' (Myanmar MN.ttc) normal normal 400 normal>
<Font 'Hiragino Sans' (ヒラギノ角ゴシック W2.ttc) normal normal 400 normal>
<Font 'Bodoni 72 Oldstyle' (Bodoni 72 OS.ttc) normal normal book normal>
<Font 'Raanana' (Raanana.ttc) normal normal 400 normal>
<Font 'Kohinoor Telugu' (KohinoorTelugu.ttc) normal normal 400 normal>
<Font 'Sana' (Sana.ttc) normal normal regular normal>
<Font 'Hiragino Sans' (ヒラギノ角ゴシック W0.ttc) normal normal 400 normal>
<Font 'Kannada Sangam MN' (Kannada Sangam MN.ttc) normal normal 400 normal>
<Font 'Athelas' (Athelas.ttc) normal normal regular normal>
<Font 'SignPainter' (SignPainter.ttc) normal normal 400 normal>
<Font 'Helvetica Neue' (HelveticaNeue.ttc) normal normal 400 normal>
<Font 'Shree Devanagari 714' (Shree714.ttc) normal normal 400 normal>
<Font 'Times' (Times.ttc) normal normal roman normal>
<Font '.Helvetica Neue DeskInterface' (HelveticaNeueDeskInterface.ttc) normal normal regular normal>
<Font 'Muna' (Muna.ttc) normal normal regular normal>
<Font 'Thonburi' (Thonburi.ttc) normal normal 400 normal>
<Font 'Mshtakan' (Mshtakan.ttc) normal normal 400 normal>
<Font 'Devanagari Sangam MN' (Devanagari Sangam MN.ttc) normal normal 400 normal>
<Font 'InaiMathi' (InaiMathi-MN.ttc) normal normal 400 normal>
<Font 'New Peninim MT' (NewPeninimMT.ttc) normal normal 400 normal>
<Font 'Noteworthy' (Noteworthy.ttc) normal normal light normal>
<Font 'Oriya MN' (Oriya MN.ttc) normal normal 400 normal>
<Font 'Geeza Pro' (GeezaPro.ttc) normal normal regular normal>
<Font 'Savoye LET' (Savoye LET.ttc) normal normal 400 normal>
<Font 'Hiragino Sans' (ヒラギノ角ゴシック W3.ttc) normal normal 400 normal>
<Font 'Superclarendon' (SuperClarendon.ttc) normal normal regular normal>
<Font 'Tamil Sangam MN' (Tamil Sangam MN.ttc) normal normal 400 normal>
<Font 'Khmer MN' (Khmer MN.ttc) normal normal 400 normal>
<Font 'Helvetica' (Helvetica.ttc) normal normal 400 normal>
<Font 'Hiragino Sans GB' (Hiragino Sans GB.ttc) normal normal 400 normal>
<Font 'Bodoni 72' (Bodoni 72.ttc) normal normal book normal>
<Font 'Waseem' (Waseem.ttc) normal normal regular normal>
<Font 'Bangla MN' (Bangla MN.ttc) normal normal 400 normal>
<Font 'PT Sans' (PTSans.ttc) normal normal 400 normal>
<Font 'Hiragino Sans' (ヒラギノ角ゴシック W7.ttc) normal normal 700 normal>
<Font 'Hiragino Maru Gothic Pro' (ヒラギノ丸ゴ ProN W4.ttc) normal normal 400 normal>
<Font 'Chalkboard SE' (ChalkboardSE.ttc) normal normal light normal>
<Font '.Arabic UI Text' (ArabicUIText.ttc) normal normal regular normal>
<Font 'Kannada MN' (Kannada MN.ttc) normal normal 400 normal>
<Font 'Lucida Grande' (LucidaGrande.ttc) normal normal 400 normal>
<Font 'Copperplate' (Copperplate.ttc) normal normal 400 normal>
<Font 'Papyrus' (Papyrus.ttc) normal normal 400 condensed>
<Font 'Al Nile' (Al Nile.ttc) normal normal 400 normal>
<Font 'Lao MN' (Lao MN.ttc) normal normal 400 normal>
<Font 'Baskerville' (Baskerville.ttc) normal normal 400 normal>
<Font 'Sukhumvit Set' (SukhumvitSet.ttc) normal normal 400 normal>
<Font 'Hiragino Sans' (ヒラギノ角ゴシック W4.ttc) normal normal 400 normal>
<Font 'Nadeem' (Nadeem.ttc) normal normal regular normal>
<Font 'Arial Hebrew' (ArialHB.ttc) normal normal 400 normal>
<Font 'Hiragino Sans' (ヒラギノ角ゴシック W1.ttc) normal normal 400 normal>
<Font '.Aqua Kana' (AquaKana.ttc) normal normal 400 normal>
<Font 'Noto Nastaliq Urdu' (NotoNastaliq.ttc) normal normal 400 normal>
<Font 'Hiragino Sans' (ヒラギノ角ゴシック W5.ttc) normal normal 700 normal>
<Font 'Gurmukhi Sangam MN' (Gurmukhi Sangam MN.ttc) normal normal 400 normal>
<Font 'Gujarati MT' (GujaratiMT.ttc) normal normal 400 normal>
<Font 'Kohinoor Devanagari' (Kohinoor.ttc) normal normal regular normal>
<Font 'Gujarati Sangam MN' (Gujarati Sangam MN.ttc) normal normal 400 normal>
<Font 'Hiragino Sans' (ヒラギノ角ゴシック W9.ttc) normal normal 700 normal>
<Font 'Corsiva Hebrew' (Corsiva.ttc) normal normal 400 normal>
<Font 'PT Mono' (PTMono.ttc) normal normal bold normal>
<Font 'Marion' (Marion.ttc) normal normal regular normal>
<Font 'Snell Roundhand' (SnellRoundhand.ttc) normal normal 400 normal>
<Font 'Heiti TC' (STHeiti Light.ttc) normal normal light normal>
<Font 'Hiragino Mincho ProN' (ヒラギノ明朝 ProN.ttc) normal normal 400 normal>
<Font 'Beirut' (Beirut.ttc) normal normal regular normal>
<Font 'Devanagari MT' (DevanagariMT.ttc) normal normal 400 normal>
<Font 'Kohinoor Bangla' (KohinoorBangla.ttc) normal normal 400 normal>
<Font 'Heiti TC' (STHeiti Medium.ttc) normal normal medium normal>
<Font 'Futura' (Futura.ttc) normal normal medium normal>
<Font 'Phosphate' (Phosphate.ttc) normal normal 400 normal>
<Font 'Oriya Sangam MN' (Oriya Sangam MN.ttc) normal normal 400 normal>
<Font 'Seravek' (Seravek.ttc) normal normal 400 normal>
<Font 'Charter' (Charter.ttc) normal normal roman normal>
<Font 'Telugu MN' (Telugu MN.ttc) normal normal 400 normal>
<Font 'Diwan Kufi' (Diwan Kufi.ttc) normal normal regular normal>
<Font 'Songti SC' (Songti.ttc) normal normal black normal>
<Font 'Kailasa' (Kailasa.ttc) normal normal regular normal>
<Font 'Avenir Next Condensed' (Avenir Next Condensed.ttc) normal normal bold condensed>
<Font 'Malayalam MN' (Malayalam MN.ttc) normal normal 400 normal>
<Font 'Damascus' (Damascus.ttc) normal normal regular normal>
<Font 'PingFang HK' (PingFang.ttc) normal normal regular normal>
<Font 'Avenir Next' (Avenir Next.ttc) normal normal bold normal>
<Font 'Euphemia UCAS' (EuphemiaCAS.ttc) normal normal 400 normal>
<Font 'Myanmar Sangam MN' (Myanmar Sangam MN.ttc) normal normal 400 normal>
<Font 'Hiragino Sans' (ヒラギノ角ゴシック W6.ttc) normal normal 700 normal>
<Font 'Sinhala MN' (Sinhala MN.ttc) normal normal 400 normal>
<Font 'ITF Devanagari' (ITFDevanagari.ttc) normal normal book normal>
<Font 'Al Bayan' (AlBayan.ttc) normal normal 400 normal>
<Font '.Arabic UI Display' (ArabicUIDisplay.ttc) normal normal black normal>
<Font 'DecoType Naskh' (DecoTypeNaskh.ttc) normal normal regular normal>
<Font 'Gill Sans' (GillSans.ttc) normal normal 400 normal>
<Font 'Telugu Sangam MN' (Telugu Sangam MN.ttc) normal normal 400 normal>
<Font 'Optima' (Optima.ttc) normal normal regular normal>
<Font 'Tamil MN' (Tamil MN.ttc) normal normal 400 normal>
<Font 'Apple SD Gothic Neo' (AppleSDGothicNeo.ttc) normal normal regular normal>
<Font 'Farah' (Farah.ttc) normal normal regular normal>
<Font 'Baghdad' (Baghdad.ttc) normal normal regular normal>
<Font 'Al Tarikh' (Al Tarikh.ttc) normal normal regular normal>
いっぱい表示されるけど、日本語っぽいのはヒラギノくらいだった
色々と試したけど、Herveticaとヒラギノくらいしか成功しなかった・・・・
これをコードの上の方に書いておけばOK
import matplotlib as mpl
mpl.rc('font', family='Hiragino Sans')
(mpl.rcParams['font.family] のように書いてもいけるらしい)
(自分はなぜかこれを書かなくても日本語が表示されるようになってしまってよくわからないことになった・・・)
または
pylab.ylabel(r"あああああああ",fontsize=30, fontname='Hiragino Sans')
と必要なところだけ書いても良い
labelじゃなくてlegendの場合は、
pylab.legend(loc='upper right', prop={"family" :'Hiragino Sans'})
のように指定する、少し特殊
最近は別のサーバーでjupyter noterbookを立ち上げて使うことがほとんどだから自分にはあまり関係がないけど、Macユーザーの場合は1度書いておけば楽ですね
自分の環境にも ~/.matplotlib というディレクトリはあることは確認
# matplotlibの日本語
macは ~/.matplotlib/matplotlibrc に書いときゃOKcd ~/.matplotlib
echo "font.family : Hiragino sans" >> matplotlibrc