Help us understand the problem. What is going on with this article?

matplotlibでTimes New Romanが意図せずボールド体になってしまうときの対処法

More than 1 year has passed since last update.

はじめに

matplotlibのアップデートをしたところ,フォントをTimes New Romanに設定すると意図せずボールド体になってしまう問題が生じました.

環境

Anaconda 3
Python 3.7.4
jupyter lab 1.1.3
matplotlib 3.1.1

対処法

以下のパスにあるfont_manger.pyの1272行目を書き直します.

\Users\username\Anaconda3\pkgs\matplotlib\Lib\site-packages\matplotlib\font_manger.py
if score < best_score:
                best_score = score
                best_font = font
if score <= best_score:
                best_score = score
                best_font = font

結果

グラフの書式を設定します.何故かこの設定のセルを2度実行しないとフォントサイズが適用されなくなってしまいましたが,他の環境でもなるかはわかりません.

%matplotlib inline
import matplotlib.pyplot as plt

#グラフの書式設定
plt.rcParams["font.family"] = "Times New Roman"      #全体のフォントを設定
plt.rcParams["xtick.direction"] = "in"               #x軸の目盛線が内向き('in')か外向き('out')か双方向か('inout')
plt.rcParams["ytick.direction"] = "in"               #y軸の目盛線が内向き('in')か外向き('out')か双方向か('inout')
plt.rcParams["xtick.minor.visible"] = True          #x軸補助目盛りの追加
plt.rcParams["ytick.minor.visible"] = True          #y軸補助目盛りの追加
plt.rcParams["xtick.major.width"] = 1.5              #x軸主目盛り線の線幅
plt.rcParams["ytick.major.width"] = 1.5              #y軸主目盛り線の線幅
plt.rcParams["xtick.minor.width"] = 1.0              #x軸補助目盛り線の線幅
plt.rcParams["ytick.minor.width"] = 1.0              #y軸補助目盛り線の線幅
plt.rcParams["xtick.major.size"] = 10                #x軸主目盛り線の長さ
plt.rcParams["ytick.major.size"] = 10                #y軸主目盛り線の長さ
plt.rcParams["xtick.minor.size"] = 5                #x軸補助目盛り線の長さ
plt.rcParams["ytick.minor.size"] = 5                #y軸補助目盛り線の長さ
plt.rcParams["font.size"] = 14                       #フォントの大きさ
plt.rcParams["axes.linewidth"] = 1.5                 #囲みの太さ

修正前
TimesNewRoman_bold.png

修正後
TimesNewRoman.png

参考

以下のサイトを参考にしました.
Stack Overflow : Times New Roman appears bold

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away