いぬおさんのおもしろ数学実験室

おいしい紅茶でも飲みながら数学、物理、工学、プログラミング、そして読書を楽しみましょう

Pythonのmatplotlibで、新たにインストールしたフォントを使いたい

 M+フォントを使っています。商用の利用も可、ということで、開発者の皆様には頭が上がりません。前、スマホゲームを作っていたとき「フォントにも著作権がある」と分かり、対応のためにインストールしたのでした。フォントを作るのは恐らくたいへんな時間と労力がかかるのでしょうから、開発者を保護しないといけません。絵や小説などはもちろんですが、フォントも同じです。

 Pythonではグラフを描くのにmatplotlibのお世話になっており、基本的な使い方だけなら簡単なのでありがたいライブラリです。しかしグラフに表示される文字(今回は目盛りの数値)のフォントをM+に変えるのに苦労しました。とにかくサイトを調べ回り、ピッタリの記事が!! 備忘録として、まとめておきます。

 C:\Users\ユーザ名\.matplotlib\fontlist-v310.json

というファイルがあります。この内容を書き換えればよいようです。テキストで書かれているので、メモ帳で編集できます。見るとデータはブロックになっており(json)、自分の使いたいフォントをつけ加えます。

    {
      "fname": "xxxxxxxx.ttf",
      "name": "M+ 1m",

  …………

    },

ぼくはfnameとnameの欄だけを書き、残りの項目は他のフォントのデータをマネ(コピー)しました。フォントがインストールしてあるフォルダはWindows\Fontsです。M+フォントの中のM+ 1mフォントの位置を"fname"の欄に書きました。

"Windows\\Fonts\\M+ 1m\\mplus-1m-regular.ttf"

という感じだったと思います。「思います」というのは、書いてPythonのコードを実行してからまた見てみたら既に書き換えられていて、自分がどう書いたのか、ハッキリ分からないからです。多分、システムがやったのでしょう。おまけに、書いたのは上のひとつだけなのに、M+に含まれるフォントがひと揃い書かれているのです。M+ 1cも、M+ 1pも使えるようになったようです。

 しかし、異なるフォントファイル、

mplus-1mn-thin.ttf

mplus-1mn-regular.ttf

mplus-1mn-bold.ttf

mplus-1mn-light.ttf

mplus-1mn-medium.ttf

に同じ名前(fname)が付いているなど、彼(システム)が何をしたいのかどうもよく分かりません。元のjsonファイルは保存してありますが、比較すると現在のファイルにはやはりM+についてぼくが書かなかった情報もたくさん入っています。今にして思えば、「fnameとnameの欄だけを書き、残りの項目は他のフォントのデータをマネ(コピー)しました」が悪かったのかも……。

 取りあえず「M+ 1p」は使えるようになったのでここまでにしておきます。何をしても勉強になります。