- 目次
- 理解
- 表計算
- コード
【理解】データの散らばりの数学的解説
散布度について
$s_x^2 \displaystyle = \frac{(x_1 - \bar{x})^2+\cdots + (x_n - \bar{x})^2}{n}$(分散)
定義(分散)
データ $x=[x_1, \ldots , x_n]$ について,
$s^2_{x}$
$\displaystyle = \frac{(x_1 - \bar{x})^2+\cdots + (x_n - \bar{x})^2}{n}$
$\displaystyle = \frac{1}{n}\sum_{k=1}^n (x_k - \bar{x})^2$
を分散という. ここで, $\bar{x}$ は $x$ の平均値である.
たとえば,
$x=[1, 2, 3]$
のとき, 分散は $\frac{2}{3}$ です。
$y=[2,4,6]$ のとき, 分散は $\frac{8}{3}$ です。
$s_x^2 = \overline{x^2} - \bar{x}^2$
分散 $s_x^2$ が期待値を使って $\overline{x^2}-\bar{x}^2$ で表されることを証明してみよう。
公式
データ $x$ の分散 $s_x^2$ について,
$s_x^2=\overline{x^2}-\bar{x}^2$
が成り立つ. ただし, データ $x$ と $x^2$ の平均値を $\bar{x}$ と $\overline{x^2}$ とする.
証明.
分散の定義式を計算する.
$\displaystyle s_x^2=\frac{(x_1 - \bar{x})^2+\cdots + (x_n - \bar{x})^2}{n}$
$s_x^2$ $\displaystyle =\frac{x_1^2+\cdots + x_n^2}{n}$ $\displaystyle -\frac{2\bar{x}(x_1+\cdots + x_n)}{n}$ $\displaystyle +\frac{\bar{x}^2+\cdots + \bar{x}^2}{n}$
$\displaystyle \bar{x}^2=\frac{x_1 +\cdots + x_n}{n}$
$s_x^2$ $\displaystyle =\frac{x_1^2+\cdots + x_n^2}{n}$ $\displaystyle -2\bar{x}^2$ $\displaystyle +\bar{x}^2$ $\displaystyle =\frac{x_1^2+\cdots + x_n^2}{n}$ $\displaystyle -\bar{x}^2$
$\displaystyle \overline{x^2}=\frac{x_1^2 +\cdots + x_n^2}{n}$
$s_x^2$ $=\overline{x^2}$ $-\bar{x}^2$
となる.
ゆえに, $s_x^2$ $=\overline{x^2}$ $-\bar{x}^2$ が成り立つ.
たとえば,
$x=[1, 2, 3]$
のとき,
$x^2=[1^2, 2^2, 3^2]$
であり,
$\bar{x}=2$,
$\displaystyle \overline{x^2}=\frac{14}{3}$
なので,
$s_x^2$ $\displaystyle =\frac{14}{3}-2^2$ $\displaystyle =\frac{2}{3}$
となります。
$s_x \displaystyle = \sqrt{\frac{(x_1 - \bar{x})^2+\cdots + (x_n - \bar{x})^2}{n}}$(標準偏差)
定義(標準偏差)
データ $x=[x_1, \ldots , x_n]$ について, 分散を $v_x$ としたとき,
$s_x=\sqrt{v_x}$
を標準偏差という. 具体的に記述すれば,
$s_{x}$
$\displaystyle = \sqrt{\frac{(x_1 - \bar{x})^2+\cdots + (x_n - \bar{x})^2}{n}}$
$\displaystyle = \sqrt{\frac{1}{n}\sum_{k=1}^n (x_k - \bar{x})^2}$
である. ここで, $\bar{x}$ は $x$ の平均値である.
たとえば,
$x=[1, 2, 3]$
のとき, 標準偏差は $\sqrt{\frac{2}{3}}$ です。
$y=[2,4,6]$ のとき, 標準偏差は $2\sqrt{\frac{2}{3}}$ です。
$\displaystyle CV=\frac{s_x}{\bar{x}}$(変動係数)
定義(変動係数)
データの標準偏差を平均値で割った値を変動係数という.
データ $x$ の標準偏差を $s_x$, 平均値を $\bar{x}$ とすると, 変動係数 $CV$ は
$\displaystyle CV = \frac{s_x}{\bar{x}}$
である.
たとえば,
$[10,12,8,11,9]$
については,
平均値 $10.0$,
標準偏差 $1.41$
です。また,
$[50,60,40,55,45]$
については,
平均値 $50.0$,
標準偏差 $7.07$
です。
いずれも変動係数は $0.14$ になります。
ヒストグラムの形状による分布の比較
ヒストグラムの形状と特徴

名称 | 意味 | 特徴 | 歪度(傾き) | 尖度(山の鋭さ) | 選ぶ代表値 | 選定理由 |
---|---|---|---|---|---|---|
正規分布(ベル型) | 平均付近が最も多く、左右対称の典型的な分布。 | 自然現象や測定値など、多くの現象で現れる。 | ≈0(対称) | ≈0(標準的) | 平均値 | 外れ値が少なく、平均・中央値・最頻値がほぼ一致するため平均値が適切。 |
一様分布(矩形型) | 全ての範囲でほぼ同じ頻度を持つ。 | 乱数や等確率事象のモデルとして使用。 | ≈0(対称) | 負(平坦) | 平均値または中央値 | 平均と中央値が一致しやすく、どちらを選んでも範囲の中央を表せる。 |
右偏分布 | 小さい値が多く、大きい値がまれに現れる。 | 所得や寿命などに見られる。 | 正 | 高(裾長い) | 中央値 | 外れ値が平均を引き上げるため、中央値の方が典型的な値を表す。 |
左偏分布 | 大きい値が多く、小さい値がまれに現れる。 | 簡単すぎる試験の点数分布などに見られる。 | 負 | 高(裾長い) | 中央値 | 外れ値が平均を引き下げるため、中央値が実態を反映しやすい。 |
二峰型 | 2つのピークを持つ。異なる集団が混ざった分布。 | 季節性や男女差など複数の要因の混合を示す。 | ほぼ0(対称的な場合) | 負(平坦) | 最頻値(複数) | 平均や中央値だと谷間を示してしまうため、各山の最頻値が適切。 |
高尖度 | 平均付近に強く集中し、裾が短い分布。 | 外れ値が少なく、測定精度の高い場合に見られる。 | ≈0(対称) | 正(尖っている) | 平均値 | 中心集中度が高く、平均値が安定して分布の中心を示す。 |
低尖度 | 平均付近の集中度が低く、裾が長い分布。 | 外れ値が多く、変動が激しいデータに見られる。 | ≈0(対称) | 負(平坦) | 中央値 | 外れ値が多く、分布の値が広く散らばっているため、中央値が適切。 |
U字型 | 中央が少なく、両端に多い分布。 | 評価が極端に分かれるアンケート結果などに見られる。 | ≈0(対称) | 負(平坦) | 最頻値(両端) | 中央はほぼデータがないため、両端のピーク(最頻値)を代表値とする。 |
$s_y^2 = a^2s_x^2$(分散)
$s_y = |a|s_x$(標準偏差)
※一次変換 $y=ax+b$ による変化
データ $x$ の各値を $y=ax+b$ によって変換したあとのデータの分散 $s_{y}^2$ が $s_{y}^2 = a^2s_{x}^2$ であることを示してみよう。
性質
データ $x=[x_1, x_2, \cdots, x_n]$ について, 分散を $s_{x}^2$ とする.
データ $x$ の各値 $x_k$ $(1 \leq k \leq n)$ を $y_k=ax_k + b$ と変換したあとのデータを $y$ とする. データ $y$ の分散を $s_y^2$ とする.
このとき, $s_y^2 = a^2s_x^2$ が成り立つ.
証明.
$x$ と $y$ の平均値を $\bar{x}$ と $\bar{y}$ とする.
$\bar{y} = a\bar{x} + b$
データ $y$ の分散の定義式を計算するために $y_k$ の偏差を求めると,
$y_k-\bar{y}$ $=(ax_k+b)-(a\bar{x}+b)$ $=a(x_k-\bar{x})$
である.
$s_y^2$
$\displaystyle =\frac{(y_1-\bar{y})^2 + \cdots + (y_n-\bar{y})^2}{n}$
$\displaystyle =\frac{a^2(x_1-\bar{x})^2 + \cdots + a^2(x_n-\bar{x})^2}{n}$
$\displaystyle =a^2\frac{(x_1-\bar{x})^2 + \cdots + (x_n-\bar{x})^2}{n}$
$=a^2s_x^2$.
ゆえに, $s_y^2 = a^2s_x^2$ が得られた.
たとえば,
$x=[1, 2, 3]$
のとき, $y=2x+1$ と変形すると,
$y=[3, 5, 7]$
になります。
$\displaystyle s_x^2=\frac{2}{3}$,
$\displaystyle s_y^2=\frac{8}{3}$
なので,
$s_y^2=2^2 \times s_x^2$
が成り立っています。
データ $x$ の各値を $y=ax+b$ によって変換したあとのデータの標準偏差 $s_{y}$ が $s_{y} = |a|s_{x}$ であることを示してみよう。
性質
データ $x=[x_1, x_2, \cdots, x_n]$ について, 標準偏差を $s_{x}$ とする.
データ $x$ の各値 $x_k$ $(1 \leq k \leq n)$ を $y_k=ax_k + b$ と変換したあとのデータを $y$ とする. データ $y$ の標準偏差を $s_y$ とする.
このとき, $s_y = |a|s_x$ が成り立つ.
証明.
一次変換 $y=ax+b$ による分散の値の変化は
$s_y^2 = a^2s_x^2$
である. ゆえに, $s_y = |a|s_x$ が成り立つ.
たとえば,
$x=[1, 2, 3]$
のとき, $y=-2x+1$ と変形すると,
$y=[-1, -3, -5]$
になります。
$\displaystyle s_x=\frac{\sqrt{6}}{3}$,
$\displaystyle s_y=\frac{2\sqrt{6}}{3}$
なので,
$s_y=|-2| s_x$
が成り立っています。
$\displaystyle z = \frac{x-\bar{x}}{s_x}$(標準化)
データ $x$ の各値を $y=ax+b$ によって変換したあとのデータの分散 $s_{y}^2$ が $s_{y}^2 = a^2s_{x}^2$ であることを示してみよう。
定義
データ $x$ について, 平均値を $0$, 標準偏差を $1$ になるように変換することをデータの標準化という.
命題
データ $x$ について, 変換
$\displaystyle z = \frac{x-\bar{x}}{s_x}$
は標準化である. ただし, データ $x$ の平均値を $\bar{x}$, 標準偏差を $s_x$ とする.
証明.
データ $x$ の一次変換 $ax+b$ による平均値と標準偏差の変化は
$a\bar{x} + b$
$|a|s_x$
であった. 今回の変換については
$\displaystyle z = \frac{x-\bar{x}}{s_x}$ $\displaystyle = \frac{1}{s_x}x + \frac{-\bar{x}}{s_x}$
であるから, 平均値と標準偏差は次のようになる.
$\displaystyle \bar{z}= \frac{1}{s_x}\bar{x} + \frac{-\bar{x}}{s_x}$ $=0$
$\displaystyle s_{z}= \frac{1}{s_x} \cdot s_{x}$ $=1$
ゆえに, $\displaystyle z = \frac{x-\bar{x}}{s_x}$ は標準化である.
たとえば,
$x=[0, 0, 2,2]$
のとき,
$\bar{x} = 1$,
$s_x = 1$
です。変換
$\displaystyle z=x-1$
と変形すると,
$z=[-1, -1, 1,1]$
になります。
この平均値は $0$ で, 標準偏差は $1$ のままです。
$\displaystyle \frac{x_k - \bar{x}}{s_x}\times 10 +50$(偏差値)
定義(偏差値)
データ $x=[x_1, \ldots , x_n]$ の $x_k$ $(1\leq k \leq n)$ について,
$\displaystyle \frac{x_k - \bar{x}}{s_x}\times 10 +50$
を偏差値という. ここで, $\bar{x}$ は $x$ の平均値, $s_x$ は $x$ の標準偏差である.
たとえば,
$x=[-5, 1, 3, 9]$
のとき,
$-5$ の偏差値は $36$,
$1$ の偏差値は $48$,
$3$ の偏差値は $52$,
$9$ の偏差値は $64$
となります。
$M-m$(データの範囲)
定義(データの範囲)
データの最大値と最小値の差をデータの範囲という.
最大値を $M$, 最小値を $m$ とすると, データの範囲は $M-m$ である.
たとえば,
$x=[1, 2, 3, 5, 5, 7]$
のとき, データの範囲は $7-1=6$ です。
$Q_3-Q_1$(四分位範囲)
定義(四分位範囲)
第3四分位数 $Q_3$ と第1四分位数 $Q_1$ の差を四分位範囲 $Q_3 - Q_1$ という.
たとえば,
$x=[1, 2, 3, 5, 5, 7]$
のとき, 四分位範囲は $5-2=3$ です。
$\displaystyle \frac{Q_3-Q_1}{2}$(四分位偏差)
定義(四分位偏差)
四分位範囲を2で割った値を四分位偏差という.
第1四分位数と第3四分位数を $Q_1$, $Q_3$ とすれば, 四分位偏差は
$\displaystyle \frac{Q_3 - Q_1}{2}$
である.
たとえば,
$x=[1, 2, 3, 5, 5, 7]$
のとき, 四分位偏差は $\frac{5-2}{3}=\frac{3}{2}$ です。
【表計算】Excel・スプレッドシートで散らばりの計算
四分位数 QUARTILE.INC()
MEDIAN関数
表計算シートでデータの四分位数を計算する場合、QUARTILE.INC(データ範囲, 戻り値)
を利用する。
・データ範囲…データのセル範囲を指定。
・戻り値…最小値:0
,第1四分位数:1
, 第2四分位数:2
, 第3四分位数:3
, 最大値:4
例えば、[A1]
:4
, [A2]
:1
, [A3]
:1
, [A3]
:1
, [A4]
:2
, [A5]
:3
の場合、
「=QUARTILE.INC(A1:A5, 2)
」と入力すると第2四分位数1.5
,
「=QUARTILE.INC(A1:A5, 3)
」と入力すると第3四分位数3
が出力されます。
分散 VAR.P()
VAR.P関数
データの分散を表計算で計算する場合、VAR.P(データ範囲)
を利用する。
・データ範囲…データのセル範囲を指定。
例えば、[A1]
:2
, [A2]
:1
, [A3]
:3
の場合、「=VAR.P(A1:A3)
」と入力すると0.66
が出力されます。
標準偏差STDEV.P()
STDEV.P関数
データの標準偏差を表計算で計算する場合、STDEV.P(データ範囲)
を利用する。
・データ範囲…データのセル範囲を指定。
例えば、[A1]
:2
, [A2]
:1
, [A3]
:3
の場合、「=STDEV.P(A1:A3)
」と入力すると0.816
が出力されます。
ヒストグラムの作成
表計算ソフト(Excelなど)でヒストグラムを作ってみよう。
※作業環境はGoogleスプレッドシートです。
作業手順
次のステップでヒストグラムを作成する。
(1) データの範囲を指定する。
(2)【挿入】
から【グラフ】
を選択する。
(3)【設定】
の【ヒストグラム】
を選択する。
(4)【カスタマイズ】
の【横軸】
で横軸の最小値と最大値を設定する。【カスタマイズ】
の【ヒストグラム】
の【バケットサイズ】
でヒストグラムの階級の幅を設定する。
(5)【カスタマイズ】
でグラフを調整する。
★完成イメージ

手順.
(1) 次のデータを利用します。このデータの範囲を指定します。今回は、A列とB列全体を指定しました。

(2) 【挿入】
から【グラフ】
を選択します。

(3) 【設定】
の【ヒストグラム グラフ】
を選択します。

(4)【カスタマイズ】
の【横軸】
で横軸の最小値と最大値を設定します。

【カスタマイズ】
の【ヒストグラム】
の【バケットサイズ】
でヒストグラムの階級の幅を設定します。

(5) その他, 必要に応じて【カスタマイズ】
でグラフを調整すると「★完成イメージ」のヒストグラムができます。
箱ひげ図の作成
表計算ソフト(Excelなど)で箱ひげ図を作ってみよう。
※作業環境はGoogleスプレッドシートです。
作業手順
次のステップで箱ひげ図を作成する。
(1) 縦(列)に各項目, 横(行)に最小値・第1四分位数・第3四分位数・最大値を並べた表をつくる。QUARTILE.INC()
関数を使う。
(2) (1)で作成した表の範囲を指定し, 【挿入】
から【グラフ】
を選択する。
(3)【設定】
の【ローソク足チャート】
を選択する。
(3)【カスタマイズ】
でグラフを調整する。
Excelでは(1)の操作を行わずに, 元のデータを選択することから箱ひげ図を作成できる。
Googleスプレッドシートでは箱ひげ図を作成する機能がなく, ローソク足チャートで代用しているため(1)の作業が必要となっている。
★完成イメージ

手順.
(0) 次のデータを利用します。

(2) 縦(列)に各項目, 横(行)に最小値・第1四分位数・第3四分位数・最大値を並べた表をつくります。

これらの値は
QUARTILE.INC(データ範囲, 戻り値)
で計算します。戻り値
に0
から4
の値を指定することで四分位数を出力することができます。例えば, クラスAでは
最小値:=QUARTILE(A:A, 0)
,
第1四分位数:=QUARTILE(A:A, 1)
,
第3四分位数:=QUARTILE(A:A, 3)
,
最大値:=QUARTILE(A:A, 4)
と入力します。
(2) (1)で作成した表の範囲を指定して【挿入】
から【グラフ】
を選択します。
(3) 【設定】
の【ローソク足チャート】
を選択します。

(5) 必要に応じて【カスタマイズ】
でグラフを調整すると「★完成イメージ」の箱ひげ図ができます。
【コード】Pythonで散らばりの計算
四分位数(パーセンタイル) percentile()
Pythonコード
numpy
モジュールのpercentile()
関数を利用し, パーセンタイル・四分位数を出力する。
percentile(データ, 引数2)
として, 引数2
には小さい値から数えて全体の何%に位置するものかを設定する。
第1四分位数の場合は引数2
には25
, 第2四分位数の場合は引数2
には50
, 第3四分位数の場合は引数2
には75
を入力する。
入力例. [20, 10, 40, 20, 40, 50, 30]
の第1四分位数, 第2四分位数, 第3四分位数を出力する。
import numpy as np
data = [20, 10, 40, 20, 40, 50, 30]
print(np.percentile(data, [25, 50, 75]))
[20. 30. 40.]
分散 pvarinace()
variance()
var()
Pythonコード
statistics
モジュールのpvariance()
関数で(母)分散, variance()
関数で標本分散を出力する。
入力例. [20, 10, 40, 20, 40, 50, 30]
の母分散と標本分散を出力する。
import statistics as st
data = [20, 10, 40, 20, 40, 50, 30]
print(st.pvariance(data))
print(st.variance(data))
171.42857142857142
200
Pythonコード
numpy
モジュールのvar()
関数を利用し, 分散を出力する。
var(データ, 引数2)
として, 引数2
にはddof=0
で(母)分散, ddof=1
で標本分散を設定する。
入力例. [20, 10, 40, 20, 40, 50, 30]
の母分散と標本分散を出力する。
import numpy as np
data = [20, 10, 40, 20, 40, 50, 30]
print(np.var(data, ddof=0))
print(np.var(data, ddof=1))
171.42857142857142
200.0
標準偏差pstdev()
stdev()
std()
Pythonコード
statistics
モジュールのpstdev()
関数で(母)標準偏差, stdev()
関数で標本標準偏差を出力する。
入力例. [20, 10, 40, 20, 40, 50, 30]
の母標準偏差と標本標準偏差を出力する。
import statistics as st
data = [20, 10, 40, 20, 40, 50, 30]
print(st.pstdev(data))
print(st.stdev(data))
13.093073414159543
14.142135623730951
Pythonコード
numpy
モジュールのstd()
関数を利用し, 標準偏差を出力する。
std(データ, 引数2)
として, 引数2
にはddof=0
で(母)標準偏差, ddof=1
で標本標準偏差を設定する。
入力例. [20, 10, 40, 20, 40, 50, 30]
の母標準偏差と標本標準偏差を出力する。
import numpy as np
data = [20, 10, 40, 20, 40, 50, 30]
print(np.std(data, ddof=0))
print(np.std(data, ddof=1))
13.093073414159543
14.142135623730951
ヒストグラムの作成hist()
データからヒストグラムをPythonで出力してみよう。
Pythonコード
matplotlib.pyplot
のhist()
関数を利用して, ヒストグラムを出力する。
hist()
の引数には, ヒストグラムにするデータを入力する。階級の個数bins
を指定する。
入力例. scores
のデータからヒストグラムを表示する。100点満点のうち10点ずつ区切るために, ヒストグラムの棒は10本にする。
import matplotlib.pyplot as plt
import japanize_matplotlib
# データ
scores = [87, 74, 79, 92, 88, 60, 79, 68, 68, 74, 71, 84,
77, 71, 74, 73, 84, 67, 73, 61, 44, 76, 78, 62,
92, 55, 70, 68, 85, 84, 71, 73, 61, 50, 66, 71,
82, 82, 66, 66, 59, 55, 52, 89, 64, 65, 57, 77,
53, 67]
# ヒストグラムの描画
plt.hist(scores, bins=10, color="skyblue", edgecolor="black")
plt.title("テスト点数の分布")
plt.xlabel("点数")
plt.ylabel("人数")
plt.grid(axis='y')
plt.show()

※matplotlib
で日本語を利用する場合japanize_matplotlib
を使う。必要であれば、次を行い事前にインストールしておく。
pip install japanize-matplotlib
ヒストグラムの複数表示(Pandasの利用)
箱ひげ図の作成boxplot()
データから箱ひげ図をPythonで出力してみよう。
Pythonコード
matplotlib.pyplot
のboxplot()
関数を利用して, 箱ひげ図を出力する。
boxplot()
の引数には, 箱ひげ図にするデータを入力する。
labels
で各箱ひげのラベルを付けることが可能。vert=False
を指定すると, 横方向の箱ひげ図を作成可能。(縦方向の場合は入力不要。)showmeans=True
を指定すると, 平均値を表示可能。meanprops
で平均値の表示形式を指定可能。不要である場合は入力不要。
入力例. class_A
class_B
class_C
のデータから箱ひげ図を表示する。
import matplotlib.pyplot as plt
import japanize_matplotlib
# データ
class_A = [78, 82, 85, 90, 87, 92, 88, 84, 79, 81, 86, 91, 83, 85, 89, 87, 90, 88, 84, 82, 86, 88, 90, 92, 85, 87, 89, 91, 83, 84]
class_B = [65, 68, 70, 72, 74, 71, 69, 66, 75, 73, 72, 70, 68, 71, 69, 74, 73, 75, 72, 68, 70, 71, 69, 67, 74, 72, 73, 75, 68, 70]
class_C = [55, 60, 65, 50, 70, 75, 40, 85, 60, 55, 50, 80, 75, 45, 65, 70, 55, 60, 85, 40, 75, 70, 50, 55, 60, 65, 45, 80, 75, 50]
# 箱ひげ図
plt.boxplot(
[class_A, class_B, class_C], labels=["クラスA", "クラスB", "クラスC"],
vert=False,
showmeans=True, # 平均値を表示
meanprops={"marker":"x", "markerfacecolor":"black", "markeredgecolor":"black", "markersize":8}
)
plt.title("数学テスト点数の分布")
plt.xlabel("点数") # plt.ylabel("点数")
plt.grid(True)
plt.show()

縦向きの場合は, vert
をTrue
にするか消去する。この場合, xlabel
とy.lable
が替わるので変更する。
import matplotlib.pyplot as plt
import japanize_matplotlib
# データ
class_A = [78, 82, 85, 90, 87, 92, 88, 84, 79, 81, 86, 91, 83, 85, 89, 87, 90, 88, 84, 82, 86, 88, 90, 92, 85, 87, 89, 91, 83, 84]
class_B = [65, 68, 70, 72, 74, 71, 69, 66, 75, 73, 72, 70, 68, 71, 69, 74, 73, 75, 72, 68, 70, 71, 69, 67, 74, 72, 73, 75, 68, 70]
class_C = [55, 60, 65, 50, 70, 75, 40, 85, 60, 55, 50, 80, 75, 45, 65, 70, 55, 60, 85, 40, 75, 70, 50, 55, 60, 65, 45, 80, 75, 50]
# 箱ひげ図
plt.boxplot(
[class_A, class_B, class_C], labels=["クラスA", "クラスB", "クラスC"],
showmeans=True, # 平均値を表示
meanprops={"marker":"x", "markerfacecolor":"black", "markeredgecolor":"black", "markersize":8}
)
plt.title("数学テスト点数の分布")
plt.ylabel("点数")
plt.grid(True)
plt.show()

※matplotlib
で日本語を利用する場合japanize_matplotlib
を使う。必要であれば、次を行い事前にインストールしておく。
pip install japanize-matplotlib