使用 matplotlib.pyplot
绘制四个事件图。事件图是一种显示多组事件的方式,每组事件都用一条线表示。显示eventplot具有各种线路属性的事件序列。以水平和垂直方向显示。
-
设置字体大小和随机种子:
matplotlib.rcParams['font.size'] = 8.0 np.random.seed(19680801)
设置字体大小和随机种子以确保可重现性。
-
创建随机数据和设置颜色、线性属性:
data1 = np.random.random([6, 50]) colors1 = [f'C{i}' for i in range(6)] lineoffsets1 = [-15, -3, 1, 1.5, 6, 10] linelengths1 = [5, 2, 1, 1, 3, 1.5]
创建一个6x50的数组作为随机数据,并设置每组位置的颜色、线性偏移和长度。
-
创建包含2x2子图的画布:
fig, axs = plt.subplots(2, 2)
创建一个包含2x2子图的画布。
-
创建水平和垂直事件图:
axs[0, 0].eventplot(data1, colors=colors1, lineoffsets=lineoffsets1, linelengths=linelengths1) axs[1, 0].eventplot(data1, colors=colors1, lineoffsets=lineoffsets1, linelengths=linelengths1, orientation='vertical')
在第一行的第一个子图中创建水平事件图,第二行的第一个子图中创建垂直事件图。
-
创建另一组随机数据和水平/垂直事件图:
data2 = np.random.gamma(4, size=[60, 50]) colors2 = 'black' lineoffsets2 = 1 linelengths2 = 1 axs[0, 1].eventplot(data2, colors=colors2, lineoffsets=lineoffsets2, linelengths=linelengths2) axs[1, 1].eventplot(data2, colors=colors2, lineoffsets=lineoffsets2, linelengths=linelengths2, orientation='vertical')
创建一个新的随机数据集,并在第一行的第二个子图中创建水平事件图,第二行的第二个子图中创建垂直事件图。
-
显示图形:
plt.show()
- 完整代码
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
# 设置字体大小
matplotlib.rcParams['font.size'] = 8.0
# 设置随机种子以便重现性
np.random.seed(19680801)
# 创建随机数据
data1 = np.random.random([6, 50])
# 为每组位置设置不同的颜色
colors1 = [f'C{i}' for i in range(6)]
# 为每组位置设置不同的线性属性
lineoffsets1 = [-15, -3, 1, 1.5, 6, 10]
linelengths1 = [5, 2, 1, 1, 3, 1.5]
# 创建一个包含2x2子图的画布
fig, axs = plt.subplots(2, 2)
# 创建水平事件图
axs[0, 0].eventplot(data1, colors=colors1, lineoffsets=lineoffsets1,
linelengths=linelengths1)
# 创建垂直事件图
axs[1, 0].eventplot(data1, colors=colors1, lineoffsets=lineoffsets1,
linelengths=linelengths1, orientation='vertical')
# 创建另一组随机数据,这次使用伽马分布仅为了美观
data2 = np.random.gamma(4, size=[60, 50])
# 使用单独的值设置参数,这些值将用于所有数据集
colors2 = 'black'
lineoffsets2 = 1
linelengths2 = 1
# 创建水平事件图
axs[0, 1].eventplot(data2, colors=colors2, lineoffsets=lineoffsets2,
linelengths=linelengths2)
# 创建垂直事件图
axs[1, 1].eventplot(data2, colors=colors2, lineoffsets=lineoffsets2,
linelengths=linelengths2, orientation='vertical')
# 显示图形
plt.show()