Python 使用DataFrame使用axvspan生成打印的高亮区域

Python 使用DataFrame使用axvspan生成打印的高亮区域,python,pandas,matplotlib,Python,Pandas,Matplotlib,我有一个数据帧: import matplotlib.pyplot as plt import pandas as pd highlight_data = pd.DataFrame(columns=list('XY')) highlight_data.columns = ['Start','Stop'] highlight_data['Start'] = [20, 25, 42, 56] highlight_data['Stop'] = [80, 35, 48, 72] 我正试图通过以下方式

我有一个数据帧:

import matplotlib.pyplot as plt
import pandas as pd

highlight_data = pd.DataFrame(columns=list('XY'))
highlight_data.columns = ['Start','Stop']
highlight_data['Start'] = [20, 25, 42, 56]
highlight_data['Stop'] = [80, 35, 48, 72]
我正试图通过以下方式制作多个亮点:

plt.figure()
for i in highlight_data:
    plt.axvspan(i[0], i[1])
plt.show()
但是,我得到的情节与预期结果并不接近。我知道类似的问题已经发布了,但我无法让它发挥作用。任何帮助都将不胜感激

编辑:这是我得到的结果。但结果应该是 20至80、25至35、42至48和56至72


您可能希望迭代数据帧的行,而不是列名

import matplotlib.pyplot as plt
import pandas as pd

highlight_data = pd.DataFrame(columns=list('XY'))
highlight_data.columns = ['Start','Stop']
highlight_data['Start'] = [20, 25, 42, 56]
highlight_data['Stop'] = [80, 35, 48, 72]

plt.figure()
for i, row in highlight_data.iterrows():
    plt.axvspan(row[0], row[1], edgecolor="black", facecolor=f"C{i}")
plt.show()

请添加结果以及与预期结果的差异。如果可以的话:后续问题,您的
facecolor
参数在这里是如何工作的?
C
是您定义的局部变量还是全局范围的一部分?
“C0”
是当前颜色循环器的第一种颜色,
“C1”
是第二种颜色,依此类推。