1

我正在寻找一种简单的方法(如果可能的话)来表示 cpu 上一系列任务的调度,如幻灯片 5 所示

我想有不同的行,一个用于每个任务,我可以在其上表示到达时间、截止日期等。我想用 matplotlib 来做,但目前我不知道有什么简单的方法。

4

1 回答 1

1

我会先检查matplotlib 库是否有类似的图。这里subplot似乎是合适的,因此从这样的事情开始可能是一种选择。当您想删除一些刺(轴)时,您可以进一步检查此示例

要获得填充块,我将使用标准fill_betweenfill调用相应的数据点,请参见例如此示例

一个简单的例子可能是:

import matplotlib.pyplot as plt

cpu1_t = [0,1,1,3,3,4,5]
cpu1_p = [1,1,0,0,1,1,0]
cpu2_t = [0,1,1,3,3,4,5]
cpu2_p = [0,0,1,1,0,0,1]

fig = plt.figure()
# plot 1
ax1 = fig.add_subplot(211)
ax1.fill_between(cpu1_t, cpu1_p,0, color='b', edgecolor='k')
ax1.set_ylabel(r'$\tau_1$', size=14, rotation=0)
# plot 2
ax2 = fig.add_subplot(212)
ax2.fill_between(cpu2_t, cpu2_p,0, color='r', edgecolor='k')
ax2.set_ylabel(r'$\tau_2$', size=14, rotation=0)

# customize axis
for ax in [ax1, ax2]:
    ax.set_ylim(0,2)
    ax.spines['right'].set_visible(False)
    ax.spines['top'].set_visible(False)
    ax.yaxis.set_ticks_position('left')
    ax.xaxis.set_ticks_position('bottom')

在此处输入图像描述

您可以进一步使用主要和次要网格、刻度等。当然,这只是创建此类图的一种可能方法。

于 2013-10-21T13:33:11.203 回答