1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

sudoなしの環境にTimes New Romanを入れてmapltotlibをいい感じにする

Last updated at Posted at 2023-01-19

sudoがないのでいつも憤死しそうになる。あればaptなりyumなりでmsttcore-fontsを入れるだけなんですけどね。。
まあ頑張りましょう。

フォントのインストール

フォントですがあまり知られていませんが$HOME配下にインストールすることが可能です。
あとTimes New Romanはmsttcore-fontsなるパッケージに入っておりRPMが入手可能ですので、ここからフォントファイルを取り出してインストールします。具体的には以下:

# RPM取り出したら`etc`と`usr`なるディレクトリが作られて後で鬱陶しいのでtmpの下で作業する
mkdir fonts_downloads
cd fonts_downloads
# `msttcore fonts RPM`とかでググるとRPM配布ページが見つかる。以下は例
wget https://rpmfind.net/linux/sourceforge/m/ms/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
# `rpm2cpio`と`cpio`が無かったら泣きましょう。こいつらのインストール方法は知らん
rpm2cpio msttcore-fonts-installer-2.6-1.noarch.rpm | cpio -id
# うまくいけば`usr/share/fonts`の下にフォントが展開される。これを`$HOME`配下の適切なディレクトリにコピーする
# フォントインストール用のディレクトリは環境によって違うかもしれない(以下はRHEL7.8の場合)
font_install_dir=$HOME/.fonts
rsync -auv usr/share/fonts/ $HOME/.fonts/

matplotlibの設定更新

キャッシュを消さないと新しいフォントを見つけてくれないらしいので消しましょう。@matplotlib/3.6.2

rm -rv .cache/matplotlib

フォントの設定は、plt.rcParamsでやるのが常套だけどめんどくさい、と思っていたらmatplotlibrcなるものがあるそうですね1
これ使えばスクリプトごとにrcParamsを書き直す必要がないので良いですね。

まずは自分の環境におけるmatplotlibrcの置き場所を調べましょう。

python3 -c 'import matplotlib as mpl; print(mpl.get_configdir())'
# 手元の(というかssh先だが)環境では`$HOME/.config/matplotlib`と出てきた

で、出てきたディレクトリの下にファイルを作成します。なおフォント以外の項目は趣味です。

$HOME/.confg/matplotlibrc
font.family       : serif
font.serif        : Times New Roman
mathtext.fontset  : stix

axes.linewidth    : 0.5
xtick.major.width : 0.5
ytick.major.width : 0.5
figure.figsize    : 5.8, 4.1
font.size         : 12

以上です。あとは適当にプロットしたらデフォルトでTimes New Romanが有効になっています。

テスト

from matplotlib import pyplot as plt
import numpy as np

x = np.arange(0, 1, 0.01)
plt.plot(x, np.sin(2*np.pi*x), label=r'sin $2\pi x$')
plt.xlabel(r'$x$')
plt.ylabel(r'$y$')
plt.legend()

hogehoge.png

よかったですね。

  1. https://hogelog.com/python/about-matplotlibrc.html

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?