Python matplotlib:在轴上绘制长方体

Python matplotlib:在轴上绘制长方体,python,pandas,matplotlib,Python,Pandas,Matplotlib,我想在y=75和90之间画一个方框(图表上的绿色和红色线条),但是当我执行ax时,什么也没有显示。添加补丁 这是我得到的图像: 那么如何填充红色和绿色水平线之间的区域呢?如果您有一个固定的区域要填充,并且要在整个图表中填充,那么最好使用axvspan。例如 import matplotlib.patches as patches df2 = pd.melt( data2.query('worktype_id!=38')[['period','worktype', 'utilizati

我想在y=75和90之间画一个方框(图表上的绿色和红色线条),但是当我执行ax时,什么也没有显示。添加补丁

这是我得到的图像:


那么如何填充红色和绿色水平线之间的区域呢?

如果您有一个固定的区域要填充,并且要在整个图表中填充,那么最好使用
axvspan
。例如

import matplotlib.patches as patches

df2 = pd.melt(
    data2.query('worktype_id!=38')[['period','worktype', 'utilization_billable', 'utilization' ]], 
    id_vars=['period', 'worktype']).sort_values(['period', 'variable'], ascending=[True, True])
g = sns.relplot(x='period', y='value', 
            hue='variable', data=df2, col='worktype', kind='line', col_wrap=4, 
            )
for ax in g.axes:
    ax.axhline(y=75, color='g', linestyle='--')
    ax.axhline(y=90, color='r', linestyle='--')
    rect = plt.Rectangle((10,10),10,10,linewidth=3,edgecolor='r',facecolor='red', alpha=1)
    ax.add_patch(rect)
  • plt.xlim():返回xaxis的开始和结束
  • 在x轴开始时,开始填充颜色,从y轴的75开始,到y轴的90结束
  • 继续填充,直到x轴末端再次从75开始,在y轴的90处结束
您不需要绘制矩形

可能重复的
ax.axvspan(75, 90, facecolor='red')
plt.fill_between(plt.xlim(),[75,75],[90,90])