目次
概要
matplotlib の stem plot で離散データ列を可視化する方法を解説します。
plt.stem – 離散データを描画する
stem plot は、垂直な線で離散データ列を可視化したグラフです。 名称は base から複数の stem が伸びている葉に由来します。
stem([x,] y, linefmt=None, markerfmt=None, basefmt=None)
- 引数
- x: x の値一覧
- y: y の値一覧
- linefmt: 幹の線のスタイル
- markerfmt: マーカーのスタイル
- basefmt: 茎の線のスタイル
- bottom: 茎の y 座標 (デフォルトは0)
- label: ラベル
- use_line_collection: warning が出るので、matplotlib 3.3 がリリースされるまでは True を指定しておきます。
- 返り値
- StemContainer: stem plot を構成するオブジェクト
In [1]:
import matplotlib.pyplot as plt
import numpy as np
from scipy import stats
x = np.arange(20)
y = stats.poisson.pmf(x, mu=5)
fig, ax = plt.subplots()
ax.stem(x, y, use_line_collection=True)
plt.show()
幹の線、茎の線のスタイルを設定する
linefmt
で幹の線のスタイル、basefmt
で茎の線のスタイルを設定できます。
指定する方法は plot() の fmt
と同じです。
In [2]:
import matplotlib.pyplot as plt
import numpy as np
from scipy import stats
x = np.arange(20)
y = stats.poisson.pmf(x, mu=5)
fig, ax = plt.subplots()
ax.stem(x, y, linefmt="--", basefmt="k-", use_line_collection=True)
plt.show()
マーカーのスタイルを設定する
markerfmt
でマーカーのスタイルを設定できます。
指定方法はこちらを参照してください。
In [3]:
import matplotlib.pyplot as plt
import numpy as np
from scipy import stats
x = np.arange(20)
y = stats.poisson.pmf(x, mu=5)
fig, ax = plt.subplots()
ax.stem(x, y, markerfmt="kx", use_line_collection=True)
plt.show()
茎の y 座標を設定する
bottom
で茎の線を引く y 座標の位置を指定できます。デフォルトでは y = 0
の位置に引かれます。
In [4]:
import matplotlib.pyplot as plt
import numpy as np
from scipy import stats
np.random.seed(0)
x = np.random.uniform(2, 5, 20)
fig, ax = plt.subplots()
ax.stem(x, bottom=2, use_line_collection=True)
plt.show()
ラベルを設定する
label
でラベルを設定できます。
In [5]:
import matplotlib.pyplot as plt
import numpy as np
from scipy import stats
x = np.arange(20)
y1 = stats.poisson.pmf(x, mu=5)
fig, ax = plt.subplots()
ax.stem(x, y1, label="poisson", use_line_collection=True)
ax.legend()
plt.show()
コメント