matplotlib – eventplot の使い方

目次

概要

matplotlib のイベントを線で可視化する eventplot() の使い方について紹介します。

使い方

positions に1次元配列を渡した場合、各要素はイベントとして解釈され、線で表されます。

In [1]:
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(0)
data = np.random.random(50)

fig, ax = plt.subplots()
ax.eventplot(data)

plt.show()

positions に2次元配列を渡した場合、配列の各行の各要素はイベントとして解釈され、線で表されます。

In [2]:
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(0)
data = np.random.random([6, 50])

fig, ax = plt.subplots()
ax.eventplot(data)

plt.show()

orientation – イベントの方向を設定する

各イベントは orientation="horizontal" なら縦線、orientation="vertical" なら横線として表されます。

In [3]:
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(0)
data = np.random.random(50)

fig, [ax1, ax2] = plt.subplots(1, 2, figsize=(8, 4))
ax1.eventplot(data, orientation="horizontal")
ax2.eventplot(data, orientation="vertical")

plt.show()

lineoffsets – イベントを表す線の中心位置を設定する

lineoffsets でイベントを表す線の中心位置を設定できます。

  • positions に1次元配列を渡した場合: 線の中心位置を指定します。
  • positions に2次元配列を渡した場合: 1次元配列で各行の線の中心位置を指定します。
In [4]:
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(0)

fig, [ax1, ax2] = plt.subplots(1, 2, figsize=(8, 4))

# positions が1次元配列の場合
data = np.random.random(50)
ax1.eventplot(data, lineoffsets=0)

# positions が2次元配列の場合
data = np.random.random([3, 20])
ax2.eventplot(data, lineoffsets=[0, 3, 6])

plt.show()

linelengths – イベントを表す線の長さを設定する

linelengths でイベントを表す線の長さを設定できます。

  • positions に1次元配列を渡した場合: 線の長さを指定します。
  • positions に2次元配列を渡した場合: 1次元配列で各行の線の長さを指定します。
In [5]:
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(0)

fig, [ax1, ax2] = plt.subplots(1, 2, figsize=(8, 4))

# positions が1次元配列の場合
data = np.random.random(50)
ax1.eventplot(data, linelengths=1)

# positions が2次元配列の場合
data = np.random.random([3, 20])
ax2.eventplot(data, lineoffsets=[0, 3, 6], linelengths=[1, 2, 3])

plt.show()

linewidths – イベントを表す線の太さを設定する

linewidths でイベントを表す線の太さを設定できます。

  • positions に1次元配列を渡した場合: 線の太さを指定します。
  • positions に2次元配列を渡した場合: 1次元配列で各行の線の太さを指定します。
In [6]:
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(0)

fig, [ax1, ax2] = plt.subplots(1, 2, figsize=(8, 4))

# positions が1次元配列の場合
data = np.random.random(50)
ax1.eventplot(data, linelengths=1)

# positions が2次元配列の場合
data = np.random.random([3, 20])
ax2.eventplot(data, lineoffsets=[0, 3, 6], linewidths=[0.5, 1, 1.5])

plt.show()

colors – イベントを表す線の色を設定する

colors でイベントを表す線の色を設定できます。

  • positions に1次元配列を渡した場合: 線の色を指定します。
  • positions に2次元配列を渡した場合: 1次元配列で各行の線の色を指定します。
In [7]:
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(0)

fig, [ax1, ax2] = plt.subplots(1, 2, figsize=(8, 4))

# positions が1次元配列の場合
data = np.random.random(50)
ax1.eventplot(data, colors="g")

# positions が2次元配列の場合
data = np.random.random([3, 20])
ax2.eventplot(data, lineoffsets=[0, 3, 6], colors=["r", "g", "b"])

plt.show()

linestyles – イベントを表す線のスタイルを設定する

linestyles でイベントを表す線のスタイルを設定できます。

  • positions に1次元配列を渡した場合: 線のスタイルを指定します。
  • positions に2次元配列を渡した場合: 1次元配列で各行の線のスタイルを指定します。
In [8]:
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(0)

fig, [ax1, ax2] = plt.subplots(1, 2, figsize=(8, 4))

# positions が1次元配列の場合
data = np.random.random(50)
ax1.eventplot(data, colors="g")

# positions が2次元配列の場合
data = np.random.random([3, 20])
ax2.eventplot(data, lineoffsets=[0, 3, 6], linelengths=2, linestyles=["-", "--", ":"])

plt.show()

コメント

コメントする

目次