Python 3.x 使用Matplotlib创建简单明细表

Python 3.x 使用Matplotlib创建简单明细表,python-3.x,matplotlib,Python 3.x,Matplotlib,我正在尝试使用Matplotlib创建一个简单的明细表。我有以下的开始。我想删除y轴编号并显示“a=1”、“a=2”、“a=3”。实际上,在我的函数中定义的y1和y2有点假,因为盒子的厚度实际上不必是某个数字。只要每个“a”的厚度相等,就可以了。我想画一个方框,在370和560之间,a=1,在550和980之间,a=2,以此类推。x轴以分钟为单位显示时间。我检查了水平条形图,但它们都是从0开始的,我无法找到将它们转换为调度类型的方法。有什么建议吗 import matplotlib.pyplot

我正在尝试使用Matplotlib创建一个简单的明细表。我有以下的开始。我想删除y轴编号并显示“a=1”、“a=2”、“a=3”。实际上,在我的函数中定义的
y1
y2
有点假,因为盒子的厚度实际上不必是某个数字。只要每个“a”的厚度相等,就可以了。我想画一个方框,在370和560之间,a=1,在550和980之间,a=2,以此类推。x轴以分钟为单位显示时间。我检查了水平条形图,但它们都是从0开始的,我无法找到将它们转换为调度类型的方法。有什么建议吗

import matplotlib.pyplot as plt

x =  [(370, 560), (550,980), (380,440)]

def activity_filler(x,y1,y2):
    # Shade the area between y1 and y2
    plt.fill_between(x, y1, y2,
                     facecolor="grey", # The fill color
                     color='grey',       # The outline color
                     alpha=0.4, hatch = 'X\/|-')          # Transparency of the fill
activity_filler(x[0],[1],[2])
activity_filler(x[1],[2],[3])
activity_filler(x[2],[3],[4])
plt.show()

x = [(370, 560), (550,980), (380,440)]

fig, ax = plt.subplots()
for i,evt in enumerate(x):
    ax.barh(i,width=evt[1]-evt[0],left=evt[0])

ax.set_yticks(range(len(x)))
ax.set_yticklabels([f'a={i+1}' for i in range(len(x))])